JavaScript-Vererbung: Object.create vs new
Was ist der Unterschied zwischen diesen beiden Beispielen in JavaScript:
Voraussetzung:
function SomeBaseClass(){
}
SomeBaseClass.prototype = {
doThis : function(){
},
doThat : function(){
}
}
Vererbungsbeispiel A mit Object.create:
function MyClass(){
}
MyClass.prototype = Object.create(SomeBaseClass.prototype);
Vererbungsbeispiel B mit dem neuen Schlüsselwort
function MyClass(){
}
MyClass.prototype = new SomeBaseClass();
Beide Beispiele scheinen dasselbe zu tun. Wann würdest du eins über das andere wählen?
Eine zusätzliche Frage: Betrachten Sie den Code unter dem Link (Zeile 15), in dem ein Verweis auf den eigenen Konstruktor der Funktion im Prototyp gespeichert ist. Warum ist das nützlich?
https://github.com/mrdoob/three.js/blob/master/src/loaders/ImageLoader.js
Auszug (wenn Sie den Link nicht öffnen möchten):
THREE.ImageLoader.prototype = {
constructor: THREE.ImageLoader
}