「JavaScript学习笔记」箭头函数的 this

ES6中的特殊函数类型:箭头函数,不使用function 默认的this绑定规则。
箭头函数的this取决于其外层作用域的this绑定情况:

function test(){
    return ()=>{
        console.log(this.a)
    }
}

var obj1 = {
    a:1
}
var obj2 = {
    a:2
}
var bar = test.call(obj1)
bar.call(obj2)  // 结果为1
// test内部的箭头函数在第一次调用test时(test函数的执行),进行了定义,此时被test函数绑定为obj1
// 箭头函数取决于其外部代码块绑定的this
// 因此后面再执行也不会改变this的绑定

箭头函数内部的this会绑定为其定义时的所在的对象,其原因为箭头函数内部没有this,因此它的this为它外层代码块的this。同时因为它没有this,箭头函数不能作为构造函数使用,会抛出错误。

参考:
http://es6.ruanyifeng.com/#docs/function#箭头函数

你可能感兴趣的:(「JavaScript学习笔记」箭头函数的 this)