我正在努力重构一个庞大且未记录的JavaScript库。建议的重构之一是在代码中实现构造函数而不是动态构造对象。示例如下:
而不是:
var myLibObj = new Object();
myLibObj.SomeProperty =
{
FooFunction: function(){/*Do Something Cool*/}
}
建议的更改:
function myLibObjConstructor(){
this.SomeProperty = {FooFunction: function(){/*Do Something Cool*/}}
return this;
}
var myLibObj = new myLibObjConstructor();
更改代码有什么好处吗?
答案 0 :(得分:2)
一个优点是myLibObjConstructor可以在其他地方重复使用
答案 1 :(得分:1)
如果现有的代码已经在不需要构造函数的情况下工作,那么转向构造函数的好处可能是边缘的或不存在的。
但是,使用构造函数的一般优点是:
instanceof
或constructor
,仅根据对象实例做出决策。答案 2 :(得分:0)
换句话说,你的问题归结为原型与构造函数。 这是一个很好的问题,并且已经有很多关于它的文章。包括这里。
How to "properly" create a custom object in JavaScript?
Advantages of using prototype, vs defining methods straight in the constructor?