您的位置:首页 > Web前端 > JavaScript

javascript 的执行上下文问题

2009-07-07 23:33 344 查看
下面这段代码

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,为什么?

我想这里涉及到执行上下文和作用域的问题,但是两者不是同一个概念,请高手明示~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: