2011-03-23 82 views

回答

8

当您编写new function() { ... }时,您将创建一个匿名函数,然后立即在new表达式中调用该函数。
该表达式的结果是由匿名函数创建的类的对象—和实例

这相当于

var anonymous = function() { ... }; 
this.Execute = new anonymous; 
+0

+1你用10秒击败了我;) – weltraumpirat 2011-03-23 11:35:05

+0

如果那是真的,你可以再次调用它 - 但是如果你尝试再次调用它,kitty.Execute不是一个函数。 – NibblyPig 2011-03-23 11:37:51

+0

@SLC:编号'Execute'不是一个函数;这是“新”表达的对象。该功能是匿名的;再次调用它的唯一方法是编写'kitty.Execute.constructor()'。 – SLaks 2011-03-23 11:38:35

3

由于使用“新”。

,如果你只想要分配的功能,过一会儿给它,那么你需要使用它是这样的:

function cat() { 

    this.Execute = function() { 
      alert('meow');  
    }  
} 

var kitty = new cat(); 
kitty.Execute(); 
当你在这种情况下使用新

,你的函数的行为,就好像它是构造函数..

4

带有警报的匿名函数用作构造函数(因为new)。 this.Execute然后变成此功能对象的“实例”。

相关问题