看到很多资料说,哪个对象调用了这个函数,这个函数中的 this 就指向这个对象。下面这个例子中,foo这个函数,是通过 foo()这个语句调用的,为什么this 指向全局?并没有 Window.foo( )这样由全局对象调用呀?求教,多谢!var x = 10;var obj = { x: 20, f: function () { var foo = function (){ console.log(this.x); } foo(); }};obj.f(); //10
1 回答
暮色呼如
TA贡献1853条经验 获得超9个赞
foo不是全局变量,简单点来判断(非严格模式)就是:
1.当一个函数没有被指定上级对象的时候,this指向window
2.当一个函数有被指定上级对象的时候,this仅指向最靠近的上级(父)对象
如 foo.fn.o() , o里面的this指向fn
添加回答
举报
0/150
提交
取消