4

我正在研究一些定义类的常用方法(Addy Osmani 的书中的构造函数模式)。

我看到的两种主要方式:

  • 简单原型:

    function Person(name) { this.name = name; }
    Person.prototype.getName = function() { return this.name; } 
    
  • ES5 Object.createObject.defineProperties

我想知道,为什么我还要考虑看起来更复杂的 ES5 方式?有什么优势吗?也许唯一的主要优势是具有只读属性,例如某些强类型语言?

4

1 回答 1

4

Object.defineProperties仅当您希望这些属性具有特定属性时才需要,例如不可枚举、只读或带有 getter 或 setter 函数。

没有必要将它用于普通类及其方法,您描述的“简单原型”方法就足够了。

于 2013-05-19T12:36:28.140 回答