var myNumber = {
value: 1,
add: function(i){
var helper = function(i){
console.log(this);
this.value += i;
}
helper(i);
}
}
myNumber.add(1);
请问这个this为什么指向window?myNumber对象调用的add方法,方法内的this为什么不指向myNumber对象呢?
var myNumber = {
value: 1,
add: function(i){
var helper = function(i){
console.log(this);
this.value += i;
}
helper(i);
}
}
myNumber.add(1);
请问这个this为什么指向window?myNumber对象调用的add方法,方法内的this为什么不指向myNumber对象呢?
10 回答11.7k 阅读
2 回答3.2k 阅读✓ 已解决
5 回答832 阅读
3 回答1.7k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
每个函数都有自己的作用域,
add
和helper
都有自己的作用域;你修饰性的调用
add
,add
作用域内的this
是myNumber
,而这个作用域内的helper
函数再调用时,没有任何修饰和显示传入this
,那么按照规则,helper
内的this
指向全局window