ES6方法的对象文字语法

时间:2017-10-25 17:32:28

标签: methods ecmascript-6 object-literal

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

我不理解这两种形式之间的差异:

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

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

这篇文章似乎明确区分了这两种格式,但第一种格式真的只是第二种吗?如果我们想要包含参数,我们只需要在第一个参数中进行a(y) {}

1 个答案:

答案 0 :(得分:3)

  

但第一个真的不是第二个吗?

没有。方法语法更类似于使用函数表达式

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

如果您指定了箭头功能,那么您将无法通过this访问该对象。

当然,空函数function() {})与身份函数function(x) { return x; })不同。

另见