12

假设我有以下功能:

var A = function() {
   var label = "hello";
   return {
      getLabel: function() { return label; }
   }
};

有什么区别:

var a = A();

var a = new A();

?

注意:我不是在这里问什么是 JavaScript 中的 'new' 关键字,而是在这个特定示例中它的行为方式。

4

1 回答 1

8

在您的特定情况下,,没有区别。

无论哪种方式,您的函数都将返回一个自定义的 Object。通过使用关键字调用函数,newECMAscript 将自动为您创建一个新对象(同时使用prototype和属性一些魔术)constructor,您可以通过.thisfunction (-constructor)

同样,您return { }在该函数中的调用将始终准确返回该对象引用。

于 2013-02-07T09:10:11.210 回答