Un débutant JavaScript ici. Je le code suivant:JavaScript OOPS Question
function testObject(elem) {
this.test = "hi";
this.val = elem;
console.log(this.test+this.val);
echo();
function echo() {
console.log(this.test+this.val);
}
}
var obj = new testObject("hello");
Lorsqu'il est exécuté, je me attends « hihello » à deux fois dans la émis console. Au lieu de cela, il sort comme prévu la première fois mais retourne NaN la deuxième fois.
Je suis sûr qu'il me manque quelque chose ici. Je pensais que la fonction interne peut accéder aux vars tenus à l'extérieur. Quelqu'un peut-il me guider s'il vous plaît? Je suis plus un développeur d'interface utilisateur fonctionnel et n'ai pas beaucoup d'expérience avec le code OO.
Merci!
Je pense que je suis en train de l'idée. Que faire si la fonction écho prend aussi des paramètres? echo ("sometext"). call (this) ne semble pas fonctionner. –
@Newbie: Vous pouvez simplement les passer après le premier argument de 'call', par ex. 'echo.call (this, 'arg1', 'arg2');' – CMS
Merci, cela fonctionne mais cela signifie aussi que je vais devoir changer chacun de mes appels de fonction. De toute façon je peux modifier la déclaration de la fonction elle-même pour le faire fonctionner? Merci encore! –