这个对象方法定义如何在没有“function”关键字的情况下工作?
我意外地发现了这个关键字的function
。 通常在下面的模块foobar
方法将被宣布为foobar: function(arg1)
,但有趣的是,以下工作,至少在一些浏览器,如Chrome版本44.0.2403.157米,但它在IE 11.0.9600.17959
这怎么可能在任何浏览器中运行呢? 这是一些新的ES6功能?
var module = { foobar(arg1) { alert(arg1); } }; module.foobar("Hello World");
这怎么可能在任何浏览器中运行呢? 是一些新的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() {} };
…
ES6允许“简洁的方法” ,正如你所发现的,它不是跨浏览器兼容的。