Dies sollte das Objekt selbst beziehen, aber im folgenden Code, warum es anders verhält?Warum bezieht sich das auf die äußere Variable?
var x = 4,
obj = {
x: 3,
bar: function() {
var x = 2;
setTimeout(function() {
var x = 1;
alert(this.x);
}, 1000);
}
};
obj.bar();
Warum ist die Warnung 4
statt 3
?
Weil 'this' auf das globale Objekt verweist – philipp
Related: [Wie der richtigen' in einem Rückruf this'/Kontext zugreifen? ] (http://stackoverflow.com/q/20279484/218196). MDN hat auch einen Abschnitt über 'this' in der [' setTimeout'-Dokumentation] (https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/setTimeout#The_this_problem). –