Dalam JavaScript, apa perbedaan antara kedua contoh ini:
Prasyarat:
function SomeBaseClass(){
}
SomeBaseClass.prototype = {
doThis : function(){
},
doThat : function(){
}
}
Contoh pewarisan A menggunakan Object.create:
function MyClass(){
}
MyClass.prototype = Object.create(SomeBaseClass.prototype);
Contoh pewarisan B menggunakan kata kunci baru
function MyClass(){
}
MyClass.prototype = new SomeBaseClass();
Kedua contoh tersebut tampaknya melakukan hal yang sama. Kapan Anda akan memilih salah satu dari yang lain?
Pertanyaan tambahan: Pertimbangkan kode di tautan di bawah (baris 15), di mana referensi ke konstruktor fungsi itu sendiri disimpan dalam prototipe. Mengapa ini berguna?
https://github.com/mrdoob/three.js/blob/master/src/loaders/ImageLoader.js
Kutipan (jika Anda tidak ingin membuka tautan):
THREE.ImageLoader.prototype = {
constructor: THREE.ImageLoader
}
Object.create
. Ini adalah kesalahan, dan harus dibuka kembali.