クラスを定義するいくつかの一般的な方法を検討しています ( Addy Osmani による Book の Constructor Pattern )。
私が見る2つの主な方法:
簡単なプロトタイプ:
function Person(name) { this.name = name; } Person.prototype.getName = function() { return this.name; }
ES5
Object.create
、Object.defineProperties
私は疑問に思っています、なぜ私はもっと複雑に見えるES5の方法を考えることさえできるのでしょうか? 何か利点はありますか?おそらく、唯一の主な利点は、厳密に型指定された言語のような読み取り専用プロパティを持つことでしょうか?