在JS中定义类(ES5与原型)

时间:2013-05-19 12:31:10

标签: javascript oop

我正在研究定义类的一些常用方法(Constructor Pattern in Book by Addy Osmani)。

我看到的两种主要方式:

  • 简单原型:

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

我想知道,为什么我甚至会考虑看起来更复杂的ES5方式呢?有什么好处吗?也许唯一的主要优势是拥有像某些强类型语言这样的只读属性?

1 个答案:

答案 0 :(得分:4)

只有当您希望这些属性具有特定属性时才需要

Object.defineProperties,例如不可枚举,只读或带有getter或setter函数。

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