当前位置:  开发笔记 > 编程语言 > 正文

箭头函数与函数声明/表达式:它们是等效/可交换的吗?

如何解决《箭头函数与函数声明/表达式:它们是等效/可交换的吗?》经验,为你挑选了1个好方法。



1> Felix Kling..:

tl;博士: 不!箭头函数和函数声明/表达式不是等价的,不能盲目替换.
如果要替换的函数使用this,arguments并且未调用new,则为yes.


经常这样:这取决于.箭头函数与函数声明/表达式具有不同的行为,因此我们先看一下差异:

词汇thisarguments

箭头功能没有自己的thisarguments绑定.相反,这些标识符在词法范围内像任何其他变量一样被解析.这意味着在箭头函数内部,thisarguments参考环境中的值thisarguments箭头函数的定义(即箭头函数的"外部"):

// Example using a function expression
function createObject() {
  console.log('Inside `createObject`:', this.foo);
  return {
    foo: 42,
    bar: function() {
      console.log('Inside `bar`:', this.foo);
    },
  };
}

createObject.call({foo: 21}).bar(); // override `this` inside createObject
推荐阅读
帆侮听我悄悄说星星
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有