3分钟理解ES6箭头函数里的this

一句话概括,es6箭头函数里的this指的是定义这个函数时外层代码的this,这句话可以从两个方面理解:

  1. es6箭头函数没有自己的this
  2. es6箭头函数里的this是外层代码(定义时,非执行时)this的引用

我们用一个简单的例子理解一下

var Animal = function() {
    this.name = "Animal";
    this.speak = (words) => {
        console.log(this.name + ' is saying ' + words + '.');
    }
}
var cat = new Animal();
cat.speak("miao ~"); // Animal is saying miao ~.
var speak = cat.speak;
speak("miao ~"); // Animal is saying miao ~. In ES5, it should be undefined is saying miao~.

可以看到更改执行上下文,并没有影响到speak函数中的this指向。

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

相关阅读更多精彩内容

  • 函数参数的默认值 基本用法 在ES6之前,不能直接为函数的参数指定默认值,只能采用变通的方法。 上面代码检查函数l...
    呼呼哥阅读 8,973评论 0 1
  • 导语 不得不说,作为一名初级的前端开发者,this关键字这个问题对于我来说一直是一个痛点,什么是this?什么是函...
    Nicole_tiny阅读 3,599评论 0 4
  • 箭头符号在JavaScript诞生时就已经存在,当初第一个JavaScript教程曾建议在HTML注释内包裹行内脚...
    程序员之路阅读 4,104评论 0 3
  • 1. this之谜 在JavaScript中,this是当前执行函数的上下文。因为JavaScript有4种不同的...
    百里少龙阅读 4,649评论 0 3
  • 盛日会集诸友, 行令划拳随授。 兴起任喧哗, 翠袖吴姬劝酒, 难受,难受, 说一醉消千垢。
    晴鹤1阅读 1,589评论 3 2

友情链接更多精彩内容