js回调函数中的this什么情况下会指向调用的那个对象

JavaScript012

js回调函数中的this什么情况下会指向调用的那个对象,第1张

谁调用的就指谁

function a(){

    console.log(this)

}

a()//输出window

window.a()//输出window

var b = {}

b.a = a

b.a()//输出b对象

var c = {}

c.a = function(){

    a()//这里其实等于window.a()

}

c.a()//输出window,因为在c.a中还是执行的window.a()

所以看懂了吗,谁调用的方法就只谁

this关键字指向调用它的对象,test()是在GLOBAL中调用,而且异步函数回调应该形成了闭包,回调函数中的this也应该指向GLOBAL对象,而至于为啥this.vall是undefined,则是因为用var申明的变量都是局部变量,并不是GLOBAL变量的属性。

好好去看看javascript中this关键字指的对象和闭包的概念吧。希望能帮到你