This question delves into an intriguing code snippet that defines an object method without using the "function" keyword. Understanding this syntax requires delving into ES6's introduction of a shorthand notation for defining methods.
Why does the following code snippet work in some browsers, despite omitting the "function" keyword?
var module = { foobar(arg1) { alert(arg1); } }; module.foobar("Hello World");
The answer lies in ES6's introduction of a shorthand notation for defining object methods. According to the ECMAScript 2015 specification:
"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) {}, };
ES6 introduced a shorthand notation that removes the necessity of the "function" keyword:
// Shorthand method names (ES6) var o = { property([parameters]) {}, get property() {}, set property(value) {}, * generator() {} };
The above is the detailed content of Why Do ES6 Object Methods Work Without the 'function' Keyword?. For more information, please follow other related articles on the PHP Chinese website!