function outer(){
var age = 20;
function inner(){
console.log(this.age);//undefined
}
inner.apply(outer);
}
outer();
请问这里为何会输出undefined呢,另外某个函数内部的函数的this是指向谁,不是说this是指向函数据以执行的作用域吗,在外部函数执行的函数,它的this应该指向外部函数才对啊,为什么是window
我注意到你的代码,
inner.apply(outer)
。你是想让inner指定使用context为outer?的确,我测试过代码是成功的,你绑定了this 为 outer。但是outer此时又不是作为函数在调用,而是一个对象在调用。outer又没有age这个属性,所以结果为undefined。
要执行成功,我稍微修改了下代码