我了解this
关键字背后的一般概念,但我无法弄清楚它在实践中实际指的是什么。例如,在这两个示例练习中,我都猜错了数字。
对于问题1,我说警报将是'5',因为它指的是函数中匿名函数之外的this.x。
在 question2 中,我认为警报会是 5,因为这条线
var alertX = o.alertX;
将变量 o 内的属性 x 的值 5 绑定到新变量 'alertX' ,该变量将成为下一行中的函数调用:alertX();
你能解释我为什么错了吗?
var question1 = function() {
this.x = 5;
(function() {
var x = 3;
this.x = x;
})();
alert(this.x);
};
var answer1 = 3;
var question2 = function() {
this.x = 9;
var o = {
'x':5,
'alertX':function() { alert(this.x); }
};
var alertX = o.alertX;
alertX();
}
var answer2 = 9;