首页 > 解决方案 > 了解以下 javascript 符号之间的区别

问题描述

我正在尝试学习 js 代码,并且在 GitHub 上浏览了一些示例代码,并且对这些代码感到困惑。以下或它们有什么区别。我删除了里面的内容以保持简单。

on_success: (file_doc) => {
}


on_success(file_doc) {
}

标签: javascript

解决方案


第一个符号只能用于对象字面量,并将匿名箭头函数分配给对象的属性on_success。与非箭头函数相比,这保留了外部this; 所以this函数内部将指向它在分配时指向的任何内容。

例子:

const obj = {
  on_success: (file_doc) => {},
}

obj.on_success();

第二种表示法只能在 Javascript 类中使用,并在类的每个实例上定义一个命名的非箭头函数。非箭头(也称为ES5-function)意味着this它内部将引用函数的执行上下文。

例子:

class Foo {
  on_success(file_doc) {}
}

const bar = new Foo;
bar.on_success();

推荐阅读