在JavaScript中使用构造函数有什么好处?
我正在努力重构一个大型的、未记录的JavaScript库。建议的重构之一是在代码中实现构造函数,而不是动态构造对象。示例如下: 而不是:在JavaScript中使用构造函数有什么好处?,javascript,Javascript,我正在努力重构一个大型的、未记录的JavaScript库。建议的重构之一是在代码中实现构造函数,而不是动态构造对象。示例如下: 而不是: var myLibObj = new Object(); myLibObj.SomeProperty = { FooFunction: function(){/*Do Something Cool*/} } 拟议的修改: function myLibObjConstructor(){ this.SomeProperty = {FooFunction
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();
更改代码有什么好处吗?一个好处是myLibObjConstructor可以在其他地方重用换句话说,您的问题归结为原型与构造函数。 这是一个很好的问题,已经有很多关于它的文章。包括这里 这里也有很好的阅读:
如果现有代码已经在不需要构造函数的情况下运行,那么转向构造函数的好处可能是微不足道的,或者根本不存在 然而,使用构造函数的一般优势是:
- 对象实例有一个“类型”,即您可以检查
或instanceof
来决定是否只给出一个对象实例constructor
- 最重要的是,你得到了封装。您可以封装“私有”属性、继承等,从而生成更干净、更可移植的代码
- 与首先实例化泛型对象并附加属性相比,使用构造函数更简洁、更传统