方法的 ES6 对象字面量语法

ES6 Object Literal Syntax for Methods

我正在查看这个 this page 关于 ES6 中用于在对象内部声明方法的各种 shorthand 语法的内容。

我不明白这两种形式之间的区别:

var foo = {
    a() {},
    b() {}
};

var foo = {
    x: (y) => y
};

文章好像把这两种格式区分得很清楚了,但是第一种不就真的变成第二种了吗?如果我们想包含参数,我们只需在第一个参数中执行 a(y) {}

but doesn't the first one really just become the second?

没有。方法语法更等同于使用 函数表达式 :

var foo = {
  a: function() {},
};

如果您分配 箭头函数,那么您将无法通过 this.

访问该对象

当然,空函数 (function() {}) 与 恒等函数 (function(x) { return x; }).


另见