【问题标题】:ES6 Object Literal Syntax for Methods方法的 ES6 对象文字语法
【发布时间】:2017-10-25 17:32:27
【问题描述】:

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

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

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

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

文章似乎对这两种格式做了明确的区分,但第一种不就真的变成了第二种吗?如果我们想包含参数,我们只需在第一个参数中添加a(y) {}

【问题讨论】:

    标签: methods ecmascript-6 object-literal


    【解决方案1】:

    但是第一个不是真的变成了第二个吗?

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

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

    如果您分配了一个箭头函数,那么您将无法通过this 访问该对象。

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


    另见

    【讨论】:

    • 其实完全等价,因为它只是一种快捷语法。
    猜你喜欢
    • 2023-03-03
    • 2018-07-25
    • 1970-01-01
    • 1970-01-01
    • 2020-12-16
    • 2021-08-18
    • 2015-06-27
    • 1970-01-01
    • 2015-01-24
    相关资源
    最近更新 更多