谁调用的就指谁
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关键字指的对象和闭包的概念吧。希望能帮到你