函数中的Javascript“new”关键字
Javascript 'new' keyword within function
var steve = function() {
this.test = new function() {
console.log('new thing');
}
this.test_not_repeating = function() {
console.log('not repeating');
}
};
steve.prototype.test = function() {
console.log('test');
};
for (var i = 0; i < 100; i++) {
var y = new steve();
}
为什么 new
关键字强制函数被计算 X 次,而不使用 new
关键字则不会?我对javascript的基本理解是,如果你不把函数放在原型上,它将被评估X次,无论new
是否是关键字。
这个函数实际上是由 new 运算符作为构造函数调用的,将结果对象分配给this.test
:
this.test = new function() {
console.log('new thing');
}
此函数仅分配给this.test_not_repeating
,它永远不会被调用:
this.test_not_repeating = function() {
console.log('new thing');
}
请记住,使用 new
调用函数时不需要括号:
new Constructor;
// Identical to
new Constructor();
new function () {};
// Identical to
new function () {}();
相关文章:
- 如何在不使用 new 关键字的情况下从函数创建对象
- “new”关键字是在构造对象时自动设置“constructor”属性的唯一方法吗
- 使用“new”关键字创建的对象和使用“Object.create”创建的对象给出不同的结果
- JavaScript:古代代码使用“new”关键字启动简单对象.为什么
- 将 JavaScript new 关键字与可变长度参数数组一起使用
- 如何判断对象是使用“Object.create”还是使用文字语法/“new”关键字创建的
- 在 anthor object 中使用 Object 方法,而无需在 javascript 中使用 new 关键字
- 使用“new”关键字的Javascript函数表达式视为“静态”是否正确?
- 在javascript中使用“new”关键字的替代方案是什么?
- JavaScript 'new' 关键字,带或不带 '()'
- Javascript Module Pattern 和 new 关键字
- Javascript中“new”关键字的限制
- javascript初始化一个没有new关键字的对象
- 闭包可以使用new关键字和区别,例如,在创建新对象/类时
- 函数中的Javascript“new”关键字
- JavaScript原型继承和“new”关键字
- 在Javascript中使用instanceof自定义对象而不使用new关键字
- 如何给一个对象's与javascript中的new关键字的属性和方法
- 为什么函数在构造函数中声明时不使用new关键字
- JavaScript避免new关键字