Ho letto Game Design con HTML5 e JavaScript e mi ha fatto conoscere gli oggetti. Quindi, dopo aver letto il libro e lavorato sui progetti, ho deciso di portare questa nuova conoscenza e integrare gli oggetti nei miei progetti. Quindi, ecco la mia domanda può o dovrebbe oggetti chiamare le proprie funzioni? Ad esempio:Oggetti Javascript che chiamano da soli la funzione
var someObject = {
start: function() {
check();
},
check: function() {
console.log("Check!");
}
};
someObject.start();
Il libro ha mostrato un esempio con un timer che fa questo:
var timer = {
start: function() {
var self = this;
window.setInterval(function(){self.tick();}, 1000);
},
tick: function() {
console.log('tick!');
}
};
Nell'esempio con oggetto timer fa riferimento a sé per chiamare la funzione interna, quindi questo significa che dovrei usare io stesso per chiamare le funzioni interne o è questo il modo corretto di farlo con gli oggetti? O le migliori pratiche? Grazie in anticipo.
var someObject = {
start: function() {
var self = this;
self.check();
},
check: function() {
console.log("Check!");
}
};
someObject.start();
Il motivo lo usano nell'esempio 'setTimeout' è perché il suo callback viene eseguito in ambito globale, così il valore di' this' nel 'setTimeout' il callback è 'window'. Per mantenere un riferimento all'oggetto originale, devi usare quel metodo (di memorizzarlo in 'self') o qualche forma di usare' Function.bind() ' – Ian