猿问

一道关于 JavaScript 中 this 的题目的困惑

看到很多资料说,哪个对象调用了这个函数,这个函数中的 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


侃侃无极
浏览 423回答 1
1回答

暮色呼如

foo不是全局变量,简单点来判断(非严格模式)就是:1.当一个函数没有被指定上级对象的时候,this指向window2.当一个函数有被指定上级对象的时候,this仅指向最靠近的上级(父)对象如 foo.fn.o() , o里面的this指向fn
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答