在不使用“function”关键字的情况下,可以在对象初始化器中定义方法吗?

4

前几天我有点累了,写了这段JavaScript代码:

var obj = {a(toto){console.log("func a: ", toto);} };

然后我尝试了:

obj.a("hello");
> func a:  hello

它起作用了。

我真正想写的是:

var obj = {a: function(toto){console.log("func a: ", toto);} };

所以我的问题是:为什么第一个代码能够工作?
是否有文档可以解释它?您认为我可以使用它吗?(它能在所有浏览器上工作吗?)
1个回答

9
这是ECMAScript 6的语法。根据您的环境 - node vs browser - 可能不建议使用此语法(例如,不支持跨浏览器)。
给定以下代码:
var obj = { foo: function() {}, bar: function() {} };
现在可以将其缩短为:
var obj = { foo() {}, bar() {} };
参考: 方法定义(ES6)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接