下面这段代码
var obj={
a:function(){
this.val=true;
}
};
this 应该指向a 还是指向obj? 为什么?
个人测试结果:开始指向a,执行obj.a()后this指向obj。但是不清楚为什么,请高手指教~
alert(obj.a.val); // 结果是undefined,为什么?(明明是a属于obj,this指向a嘛,为什么是undefined?)
alert(obj.val); // 结果是undefined,为什么?
obj.a(); // 执行后切换执行环境
alert(obj.val); // 结果是true,为什么?
alert(obj.a.val); // 结果是undefined,为什么?
我想这里涉及到执行上下文和作用域的问题,但是两者不是同一个概念,请高手明示~