JavaScriptでは、これら2つの例の違いは何ですか。
前提条件:
function SomeBaseClass(){
}
SomeBaseClass.prototype = {
doThis : function(){
},
doThat : function(){
}
}
Object.createを使用した継承の例A:
function MyClass(){
}
MyClass.prototype = Object.create(SomeBaseClass.prototype);
新しいキーワードを使用した継承例B
function MyClass(){
}
MyClass.prototype = new SomeBaseClass();
どちらの例も同じことをするようです。いつどちらを選ぶか?
追加の質問:以下のリンク(15行目)のコードを検討してください。関数自身のコンストラクターへの参照がプロトタイプに格納されています。なぜこれが便利なのですか?
https://github.com/mrdoob/three.js/blob/master/src/loaders/ImageLoader.js
抜粋(リンクを開かない場合):
THREE.ImageLoader.prototype = {
constructor: THREE.ImageLoader
}
Object.create
。これは間違いであり、再開する必要があります。