objet fonction javascript orienté débutant question invoquer
-
11-09-2019 - |
Question
Je suis une question quand créer un objet javascript, quand une fonction invoquant une autre fonction au sein de l'objet, ne nous devons utiliser « ceci »
MyObject = function() {
this.function_one = function(param) {
return param + param;
};
this.function_two = function(param) {
return this.function_one(param) * this.function_one(param);
// when invoking function_one, do i need to use 'this' ????
};
}
La solution
Dans ce cas, oui. En effet, vous attribuez la fonction anonyme être une propriété de l'objet nouvellement construit, qui est la seule façon d'y accéder.
Il est possible de faire en sorte que this
ne soit pas nécessaire this.function_two
:
// Inside the MyObject constructor:
function function_one(param) {
return param + param;
}
// Optional, if you don't care about being able to call
// function_one from outside the closure
this.function_one = function_one;
fait en sorte que function_one
est disponible en tant que variable à l'intérieur de la fermeture créée en appelant le constructeur; rendant les fonctions disponibles pour appeler deux façons différentes (via variable libre et propriété d'objet) n'est pas un idiome très commun, cependant.
Je vous suggère de lire cet article par Crockford pour une meilleure compréhension des différents façons dont vous pouvez attacher des méthodes à des objets.
Autres conseils
Oui, contrairement à Java / C # / C ++ vous devez spécifier