沒有「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中文網其他相關文章!