在JavaScript中使用构造函数有什么好处?

在JavaScript中使用构造函数有什么好处?,javascript,Javascript,我正在努力重构一个大型的、未记录的JavaScript库。建议的重构之一是在代码中实现构造函数,而不是动态构造对象。示例如下: 而不是: var myLibObj = new Object(); myLibObj.SomeProperty = { FooFunction: function(){/*Do Something Cool*/} } 拟议的修改: function myLibObjConstructor(){ this.SomeProperty = {FooFunction

我正在努力重构一个大型的、未记录的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();

更改代码有什么好处吗?

一个好处是myLibObjConstructor可以在其他地方重用

换句话说,您的问题归结为原型与构造函数。 这是一个很好的问题,已经有很多关于它的文章。包括这里

这里也有很好的阅读:

如果现有代码已经在不需要构造函数的情况下运行,那么转向构造函数的好处可能是微不足道的,或者根本不存在

然而,使用构造函数的一般优势是:

  • 对象实例有一个“类型”,即您可以检查
    instanceof
    constructor
    来决定是否只给出一个对象实例
  • 最重要的是,你得到了封装。您可以封装“私有”属性、继承等,从而生成更干净、更可移植的代码
  • 与首先实例化泛型对象并附加属性相比,使用构造函数更简洁、更传统

这也是一个巨大的优势,也是优秀编程的最基本原则之一。问得好!但可能是和的欺骗