一尘不染

没有“ function”关键字的情况下,此对象方法定义如何工作?

javascript

我是通过不小心遗漏了function关键字发现了这一点。通常foobar,以下模块中的方法将声明为foobar: function(arg1),但有趣的是,至少在某些浏览器中,以下工作有效,例如Chrome版本44.0.2403.157 m,但在IE
11.0.9600.17959中失败

这怎么可能在任何浏览器中都运行?这是某种新的ES6功能吗?

var module = {
    foobar(arg1) {
        alert(arg1);
    }
};

module.foobar("Hello World");

阅读 361

收藏
2020-04-25

共1个答案

一尘不染

这怎么可能在任何浏览器中都运行?是某种新的ES6功能吗?

方法定义

对象的属性也可以引用函数或getter或setter方法。

var o = {
  property: function ([parameters]) {},
  get property() {},
  set property(value) {},
};

在ECMAScript 6中,可以使用速记符号,因此不再需要关键字“功能”。

// Shorthand method names (ES6)
var o = {
  property([parameters]) {},
  get property() {},
  set property(value) {},
  * generator() {}
};

2020-04-25