Ich lerne Javascript und ich stieß auf Zweifel. Warum ist der Wert von "this" im ersten Beispiel undefiniert, wird aber im zweiten Beispiel korrekt ausgegeben.Warum ändert sich der Wert von "this"?
Beispiel 1:
var myNamespace = {
myObject: {
sayHello: function() {
console.log("name is " + this.myName);
},
myName: "john"
}
};
var hello = myNamespace.myObject.sayHello;
hello(); // "name is undefined"
Beispiel 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"
Warum in der Funktion den Wert von "dieser" Änderungen der Fall ist. Welches Konzept fehlt mir?
So funktioniert 'this'. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/this – SLaks
Ihre Erwartung ist in Ordnung, JavaScript '' s' Semantik ist gebrochen. :-) – Waldheinz
es ist Javascript nicht "java script" .. sehr sehr großer Unterschied .. :) –