javascript - 如果没有 "function"关键字,这个对象方法定义如何工作?

标签 javascript function methods ecmascript-6 shorthand

我不小心遗漏了 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");

最佳答案

How is it possible that this runs at all in any browser? Is is some sort of new ES6 functionality?

Yes .

...

Method definitions

A property of an object can also refer to a function or a getter or setter method.

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

In ECMAScript 6, a shorthand notation is available, so that the keyword "function" is no longer necessary.

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

...

关于javascript - 如果没有 "function"关键字,这个对象方法定义如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32404617/

相关文章:

javascript - ngFor 未在 IE 11 中更新(带有 CoreJS 的 RC4)

javascript - Next.js 中 babelification 后的对象相等问题

java - 引用构造函数中的方法 (java)

java - 如何在没有 @Override 注释的情况下找到所有覆盖父类(super class)/接口(interface)方法的方法?

javascript - 道场dnd输入框

javascript - 节点依赖停止工作

javascript - 使用 JavaScript 从数组中触发命名函数?

function - 加入PySpark时有right_anti吗?

javascript - 如何用一个函数返回多个值?

java - 返回未知类型 Java