Was ist in JavaScript der Unterschied zwischen diesen beiden Beispielen:
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ürden Sie einen über den anderen wählen?
Eine zusätzliche Frage: Betrachten Sie den Code im folgenden 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
}
Object.create
. Dies ist ein Fehler und sollte erneut geöffnet werden.