经常出现错误的是
var x = 10;
var obj = {
x: 20,
f: function(){
console.log(this.x);
var foo = function(){ console.log(this.x); }
foo(); // (2)
}
};
obj.f(); // (1)
这里是先打印20,然后再打印10。这里的foo()虽然是在函数f里面执行的,但是他的this的指向还是指向全局的。这种直接执行的this都是指向全局。
经常出现错误的是
var x = 10;
var obj = {
x: 20,
f: function(){
console.log(this.x);
var foo = function(){ console.log(this.x); }
foo(); // (2)
}
};
obj.f(); // (1)
这里是先打印20,然后再打印10。这里的foo()虽然是在函数f里面执行的,但是他的this的指向还是指向全局的。这种直接执行的this都是指向全局。
转载于:https://www.cnblogs.com/zhuni/p/6389564.html