JavaScript'te bu iki örnek arasındaki fark nedir:
Önkoşul:
function SomeBaseClass(){
}
SomeBaseClass.prototype = {
doThis : function(){
},
doThat : function(){
}
}
Object.create kullanarak kalıtım örneği A:
function MyClass(){
}
MyClass.prototype = Object.create(SomeBaseClass.prototype);
Yeni anahtar kelimeyi kullanan kalıtım örneği B
function MyClass(){
}
MyClass.prototype = new SomeBaseClass();
Her iki örnek de aynı şeyi yapıyor gibi görünüyor. Ne zaman birini diğerine tercih edersiniz?
Ek bir soru: Prototipte işlevin kendi kurucusuna bir referansın depolandığı aşağıdaki bağlantıdaki (satır 15) kodu düşünün. Bu neden yararlıdır?
https://github.com/mrdoob/three.js/blob/master/src/loaders/ImageLoader.js
Alıntı (bağlantıyı açmak istemiyorsanız):
THREE.ImageLoader.prototype = {
constructor: THREE.ImageLoader
}
Object.create
. Bu bir hatadır ve yeniden açılmalıdır.