没有“Function”关键字的方法定义:ES6 特性
在本文中,我们深入研究了一个不寻常的观察:成功执行不带“function”关键字的对象方法。这种奇怪的行为已经在某些浏览器中遇到过,让我们思考它的起源和含义。
有问题的对象方法定义是:
var module = { foobar(arg1) { alert(arg1); } };
在传统的 JavaScript 语法中,这个方法是声明为:
foobar: function(arg1) {}
但是,在这种情况下省略“function”引起了人们对其兼容性以及与 ES6 的潜在联系的疑问
回答
是的,这个方法定义是 ES6 对象方法新语法的结果。在 ES6 中,速记符号允许更简洁的方法定义,而无需“function”关键字。这是通过使用箭头函数来实现的,箭头函数提供了传统函数的简化替代方案。
ECMAScript 6 规范对方法定义进行了以下规定:
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() {} };
因此,方法定义不带“function”是某些浏览器支持的有效 ES6 语法。但是,正如原始问题中所述,此功能可能无法在不同浏览器版本之间普遍兼容。
以上是ES6 对象方法可以在没有'function”关键字的情况下定义吗?的详细内容。更多信息请关注PHP中文网其他相关文章!