Tutti,Javascript "questo" ambito dando risultato diverso a seconda del modo in cui viene chiamato
Questo è il codice:
var Person = function (name) {
this.name = name;
this.printName = function(){
console.log("My name is " + this.name);
}
};
var p = new Person("Steve");
var funcRef = p["printName"];
p.printName();//Works
p["printName"]();//Works
funcRef();//returns incorrect value
Trovare un esempio di lavoro qui: http://plnkr.co/edit/57LS6oXPfqccAWf6uqQV?p=preview
La mia domanda è qual è la differenza tra gli ultimi due? Sto accedendo al metodo dell'oggetto allo stesso modo, l'unica differenza è il modo in cui viene chiamato.
Perché restituisce un risultato differenza?
La prima volta che mi sono imbattuto in javascript. Capisco che è in un ambito diverso, ma non so come sia stato disaccoppiato dall'oggetto che è quello che vorrei capire.
Grazie
Steve
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/this – Schleis
'this' è tardiva in JS. –