Noob question, recherchée mais ne trouve pas de réponse à cette question. Je suis la construction d'un objet, et faisant référence aux paramètres de l'argument en utilisant le « ce » mot-clé:Javascript redondant cela dans la méthode de l'objet?
function Obj(a, b, c) {
this.a = a;
this.b = b;
this.c = c;
this.addMe = function() {
alert(this.a + this.b + this.c);
};
}
Ma question est simple: si a, b, et c existent uniquement dans l'objet (en En d'autres termes, il n'y a pas de variables globales déclarées en utilisant les mêmes noms), le mot clé 'this' est-il requis lors de leur utilisation dans la méthode addMe()? la méthode non seulement être écrit comme pourrait:
this.addMe = function() {
alert(a + b + c);
};
Quand je lance ce code en créant une nouvelle instance de Obj, il fonctionne exactement de la même façon soit. Et (ce n'est pas ce que je ferais) si je crée des variables globales pour a, b, et c de valeur différente des arguments que j'utilise lors de l'instanciation du nouvel Obj, cela n'a aucun impact sur les résultats de l'appel de méthode. Alors, est-ce qu'il me manque quelque chose qui reviendra me mordre si je n'utilise pas 'ceci' dans la méthode?
Cela dépend de ce que 'a',' 'b' et c' sont, et s'il y a une chance qu'ils » sera réaffecté à un moment donné. Si les versions 'this' ne sont jamais réassignées, elles devraient être identiques. – Carcigenicate
Si vous souhaitez obtenir l'état initial de l'instance à partir de la méthode, vous devez retourner le calcul par arguments. Si vous souhaitez obtenir l'état actuel d'une instance à partir de la méthode, vous devez renvoyer le calcul par propriétés d'un objet. – Teemu
Comme dit '@ Carcigenicate', mais comme vous avez ces propriétés publiques, vous devez utiliser' this', car la réaffectation est une option. – PHPglue