在学习一个例子中:
var o=
{
m:function()
{
var self=this;
document.write(this===o);
f();
function f()
{
document.write(this===o);
}
}
}
刚开始以为两个输出全部都为true,this指向的都应该是对象o,但理解错误,查看了资料解释为:
关键字this没有作用域的限制,嵌套的函数不会从调用它的函数中继承this。
如果嵌套的函数作为方法调用,其this的值执行调用它的对象。
如果嵌套的函数作为函数调用,其this值不是全局对象(非严格模式下)就是undefined(严格模式下)。