【发布时间】:2020-02-13 07:45:18
【问题描述】:
我在某处听说 new 关键字并非到处都是强制性的。这是真的吗?
app.post('/tasks', (req, res) => {
const task = new Task(req.body)
如果我不写新的,它仍然有效。 我对这个关键字感到困惑
validate(value) {
if(value.toLowerCase().includes('password')) {
throw new Error(`Password can't be "password"`)
}
}
const add = (a, b) => {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve(a + b)
}, 2000)
})
}
再次在这里,如果我不提供新的,它不起作用。 有人可以详细说明区别吗?
【问题讨论】:
-
这能回答你的问题吗? What is the 'new' keyword in JavaScript?
-
不错的副本 :-(
-
只有在函数支持的情况下才能省略
new。你也可以自己创建这样的函数:jsfiddle.net/50w6Lvru -
通常在调用构造函数或类以创建构造函数/类的实例时使用
new。一些(尤其是)宿主对象可以在没有new运算符的情况下调用,当它们可能返回不同的结果时,例如。Date]()在没有new的情况下调用时返回一个字符串。一些库有构造函数,它们检测到它们被new调用,如果没有使用,它们会用new运算符调用自己,从而强制创建一个新实例。
标签: javascript keyword