「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#箭头函数

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 函数参数的默认值 基本用法 在ES6之前,不能直接为函数的参数指定默认值,只能采用变通的方法。 上面代码检查函数l...
    呼呼哥阅读 8,943评论 0 1
  • 特别说明,为便于查阅,文章转自https://github.com/getify/You-Dont-Know-JS...
    杀破狼real阅读 4,028评论 0 1
  • JavaScript因为其语法松散,导致函数(尤其是this)看似简单,其实里面花头很多。本篇介绍一下JavaSc...
    张歆琳阅读 7,017评论 1 17
  • 1.函数参数的默认值 (1).基本用法 在ES6之前,不能直接为函数的参数指定默认值,只能采用变通的方法。
    赵然228阅读 4,064评论 0 0
  • 小小的学校,窄窄的教室,却堆满了一群懵懂少年们欢乐与悲伤的青春故事。书不出的眷恋,叙不尽的故事,歌不清的想念。——...
    琉莲阅读 1,558评论 0 3

友情链接更多精彩内容