function cat() {
this.Execute = new function() {
alert('meow');
}
}
var kitty = new cat();
为什么会这样呢?我没有告诉它运行这个函数。
注:此内容涉及IT技术,可能需要专业背景知识才能理解。
function cat() {
this.Execute = new function() {
alert('meow');
}
}
var kitty = new cat();
为什么会这样呢?我没有告诉它运行这个函数。
注:此内容涉及IT技术,可能需要专业背景知识才能理解。
new function() { ... }
时,您正在创建一个匿名函数,然后在new
表达式中立即调用它。var anonymous = function() { ... };
this.Execute = new anonymous;
kitty.Execute.constructor()
。 - SLaks使用带有警报的匿名函数作为构造函数(因为有new
)。然后this.Execute
成为此函数对象的“实例”。
由于使用了“new”关键词。
如果您只想分配函数并稍后调用它,则需要像这样使用:
function cat() {
this.Execute = function() {
alert('meow');
}
}
var kitty = new cat();
kitty.Execute();