Soalan ini menyelidiki coretan kod yang menarik yang mentakrifkan kaedah objek tanpa menggunakan kata kunci "fungsi". Memahami sintaks ini memerlukan mendalami pengenalan ES6 tentang notasi trengkas untuk mentakrifkan kaedah.
Mengapa coretan kod berikut berfungsi dalam sesetengah penyemak imbas, walaupun mengabaikan kata kunci "fungsi"?
var module = { foobar(arg1) { alert(arg1); } }; module.foobar("Hello World");
Jawapannya terletak pada Pengenalan ES6 tentang notasi trengkas untuk mentakrifkan kaedah objek. Menurut spesifikasi ECMAScript 2015:
"Sifat objek juga boleh merujuk kepada fungsi atau kaedah pengambil atau penetap."
var o = { property: function ([parameters]) {}, get property() {}, set property(value) {}, };
ES6 memperkenalkan tatatanda trengkas yang mengalih keluar keperluan kata kunci "fungsi":
// Shorthand method names (ES6) var o = { property([parameters]) {}, get property() {}, set property(value) {}, * generator() {} };
Atas ialah kandungan terperinci Mengapa Kaedah Objek ES6 Berfungsi Tanpa Kata Kunci 'fungsi'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!