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

JavaScript019

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()

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

在回调函数内部,可以使用ES6的箭头函数,它会自动绑定外部this。例如:

function foo() {

this.bar = 'bar'

setTimeout(() =>{

console.log(this.bar)// bar

}, 1000)

}