我遇到了一位同事的逻辑推理,想在提交更改之前弄清楚后果。基本上,我有一堂课:

var MyClass = function(){};
MyClass.prototype = {...}


在另一个文件中,我正在定义一个需要该类的模块,并执行以下操作:

return {
   propA: new MyClass().propA,
   propB: new MyClass().propB
};


另一种方法是声明一个新的MyClass对象,并按如下方式使用它:

var myObject = new MyClass();

return {
   propA: myObject.propA,
   propB: myObject.propB
};


使用其中每一项的优点和陷阱是什么?

最佳答案

既然(据我所知,您只是在实例化MyClass来访问原型属性),为什么不删节中间人呢?

return {
   propA: MyClass.prototype.propA,
   propB: MyClass.prototype.propB
};

关于javascript - 实例化对象而不将其存储在变量中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24883674/

10-12 22:20