In JavaScript qual è la differenza tra questi due esempi:
Prerequisiti:
function SomeBaseClass(){
}
SomeBaseClass.prototype = {
doThis : function(){
},
doThat : function(){
}
}
Esempio di ereditarietà A utilizzando Object.create:
function MyClass(){
}
MyClass.prototype = Object.create(SomeBaseClass.prototype);
Esempio di ereditarietà B utilizzando la nuova parola chiave
function MyClass(){
}
MyClass.prototype = new SomeBaseClass();
Entrambi gli esempi sembrano fare la stessa cosa. Quando sceglieresti uno sull'altro?
Un'ulteriore domanda: considera il codice nel link sottostante (riga 15), dove un riferimento al costruttore della funzione è memorizzato nel prototipo. Perché è utile?
https://github.com/mrdoob/three.js/blob/master/src/loaders/ImageLoader.js
Estratto (se non vuoi aprire il link):
THREE.ImageLoader.prototype = {
constructor: THREE.ImageLoader
}
Object.create
. Questo è un errore e dovrebbe essere riaperto.