這個問題深入研究了一個有趣的程式碼片段,它定義了一個不使用「function」關鍵字的物件方法。要理解這個語法需要深入研究 ES6 所引入的定義方法的簡寫符號。
為什麼下面的程式碼片段在某些瀏覽器中可以工作,儘管省略了「function」關鍵字?
var module = { foobar(arg1) { alert(arg1); } }; module.foobar("Hello World");
答案就在ES6引入了簡寫用來定義物件方法的符號。根據ECMAScript 2015 規範:
「物件的屬性也可以引用函數或getter 或setter 方法。」
var o = { property: function ([parameters]) {}, get property() {}, set property(value) {}, };
ES6 引入了一種速記符號,刪除了「function」關鍵字的必要性:
// Shorthand method names (ES6) var o = { property([parameters]) {}, get property() {}, set property(value) {}, * generator() {} };
以上是為什麼 ES6 物件方法在沒有「function」關鍵字的情況下也能運作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!