我正在研究定义类的一些常用方法(Constructor Pattern in Book by Addy Osmani)。
我看到的两种主要方式:
简单原型:
function Person(name) { this.name = name; }
Person.prototype.getName = function() { return this.name; }
ES5 Object.create
,Object.defineProperties
我想知道,为什么我甚至会考虑看起来更复杂的ES5方式呢?有什么好处吗?也许唯一的主要优势是拥有像某些强类型语言这样的只读属性?
答案 0 :(得分:4)
Object.defineProperties
,例如不可枚举,只读或带有getter或setter函数。
没有必要将它用于普通类及其方法,其中您描述的“简单原型”方法是完全足够的。