J'ai ceci: je veux appeler init code> dans la course. Comment puis-je faire cela? P> p>
4 Réponses :
Utilisez this.init () code>, mais ce n'est pas le seul problème. N'appelez pas de nouvelles sur vos fonctions internes. var Test = new function() {
this.init = function() {
alert("hello");
};
this.run = function() {
// call init here
this.init();
};
}
Test.init();
Test.run();
// etc etc
Mais avec cela, je ne peux pas appeler test.init () code> d'une autre classe. Comment puis-je le faire pour que test code> est un singleton mais peut toujours appeler init () code> de cette façon?
Fonctionne bien pour moi, Firebug ne se plaint pas. Avez-vous supprimé le "nouveau" des déclarations de fonction à l'intérieur du test?
Vous avez oublié de laisser tomber le nouveau de la fonction supérieure ... le constructeur
Pourriez-vous mettre à jour cette réponse pour ES6, en utilisant classe code>? Je veux savoir. Merci!
var Test = function() {
this.init = function() {
alert("hello");
}
this.run = function() {
this.init();
}
}
Unless I'm missing something here, you can drop the "new" from your code.
Ce qui est parfaitement bien ... non?
essayez ceci, merci. p> p>
Au lieu de cela, essayez de l'écrire de cette façon:
function test() {
var self = this;
this.run = function() {
console.log(self.message);
console.log("Don't worry about init()... just do stuff");
};
// Initialize the object here
(function(){
self.message = "Yay, initialized!"
}());
}
var t = new test();
// Already initialized object, ready for your use.
t.run()
Il n'y a pas de classes ou de méthodes de classe dans JavaScript
@Chris ballance qui n'est pas explicitement i> vrai ..