Je suis nouveau aux fermetures et ai une compréhension de «m'obtient en faisant la plupart des choses» de javascript et ainsi je me demande comment je peux améliorer etc. sur le suivant qui était moi essayant d'avoir un objet qui a un compteur ... essayant d'améliorer/approfondir ma compréhension.Javascript setTimout dans un objet/fonction aide
éditer: le code suivant fonctionne, bien sûr ... mais probablement il est faux (est-ce?) ... Je n'ai même pas près d'une idée de savoir si c'est un code correct ou incorrect .. Où puis-je améliorer ... existe-t-il un meilleur moyen d'avoir une minuterie dans un objet/une fonction?
function myObj() {
this.outputId = 'div_output1';
this.counter = 0;
this.limit = 10;
this.count = function() {
// reference to self
var me = this;
if (me.doStuff(me)) setTimeout(function() {
me.count();
},1000);
};
this.doStuff = function(me) {
if (me.counter >= me.limit) {
document.getElementById(me.outputId).innerText = 'count reached limit';
return false;
} else {
document.getElementById(me.outputId).innerText = 'count = ' + me.counter;
me.counter += 1;
return true;
}
}
}
// exemple d'utilisation de l'objet ...
window.onload = function() {
var x = new myObj;
x.outputId = 'div_output2';
x.count();
var y = new myObj;
y.limit = 8;
y.count();
}
Qu'est-ce qui ne va pas exactement avec le code affiché? – Triptych
Je ne pense pas que quelque chose va mal peut-être ... mais entendre parler de fuites de mémoire et la complexité générale de saisir le concept ... Je suis convaincu qu'il ya probablement une meilleure façon, d'une manière plus correcte ... – davidsleeps
Can vous ajoutez ce que votre problème est à la question? – Alex