美文网首页
「JavaScript学习笔记」箭头函数的 this

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

作者: 这名字真不对 | 来源:发表于2017-11-16 14:23 被阅读0次

    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

          本文链接:https://www.haomeiwen.com/subject/yzplvxtx.html