Sto imparando javascript e mi sono imbattuto in un dubbio. Perché il valore di "questo" non è definito nel primo esempio, ma viene stampato correttamente nel secondo.Perché il valore di "questo" cambia?
Esempio 1:
var myNamespace = {
myObject: {
sayHello: function() {
console.log("name is " + this.myName);
},
myName: "john"
}
};
var hello = myNamespace.myObject.sayHello;
hello(); // "name is undefined"
Esempio 2:
var myNamespace = {
myObject: {
sayHello: function() {
console.log("Hi! My name is " + this.myName);
},
myName: "Rebecca"
}
};
var obj = myNamespace.myObject;
obj.sayHello();//"Hi! My name is Rebecca"
Perché il valore di "questo" cambiamenti all'interno della funzione. Che concetto mi manca?
Ecco come funziona "questo". https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/this – SLaks
L'aspettativa è giusta, la semantica 'this' di JavaScript è interrotta. :-) – Waldheinz
non è javascript "java script" .. molto molto bella differenza .. :) –