function cat() {
this.Execute = new function() {
alert('meow');
}
}
var kitty = new cat();
为什么这样做?我没有告诉它运行该功能。
答案 0 :(得分:8)
当您编写new function() { ... }
时,您正在创建一个匿名函数,然后立即在new
表达式中调用它。
此表达式的结果是一个对象 - 由匿名函数创建的类的实例。
相当于
var anonymous = function() { ... };
this.Execute = new anonymous;
答案 1 :(得分:4)
带有警报的匿名函数用作构造函数(因为new
)。 this.Execute
然后成为此函数对象的“实例”。
答案 2 :(得分:3)
由于使用了“新”。
如果您只想分配函数并稍后调用它,那么您需要像这样使用它:
function cat() {
this.Execute = function() {
alert('meow');
}
}
var kitty = new cat();
kitty.Execute();
当你在这个上下文中使用new时,你的函数就好像它是构造函数一样......