7

是否有任何考虑来确定创建具有私有成员的对象的更好做法?

var object = new function () { 
   var private = "private variable";
   return {
       method : function () { 
           ..dosomething with private;
       }
   }
}

VS

var object = function () {
 ...
}();

基本上在这里使用 NEW 和在我们定义后立即调用函数有什么区别?

4

3 回答 3

9

运算符使new函数像构造函数一样被调用。

我以前见过这种模式,但我没有看到使用它的任何好处。

操作符的目的new是创建一个对象(this构造函数内部的值),设置正确的[[Prototype]]内部属性,构建原型链并实现继承(可以在[[Construct]]操作中看到细节)。

我建议您继续使用内联调用模式。

于 2010-04-05T22:37:38.403 回答
1

如果您将函数用作事件处理程序,则可能会出现内存泄漏。看一些文章

于 2010-04-05T22:35:46.223 回答
1

链接提供的统计数据也证实内联调用模式更好。

请注意,测量值operations per second越高越好

于 2013-10-21T08:29:13.287 回答