Dalam ES6, kaedah objek boleh ditakrifkan menggunakan sintaks fungsi tradisional atau sintaks kaedah ringkas. Walau bagaimanapun, bolehkah kita memanfaatkan fungsi anak panah yang baru diperkenalkan dalam konteks ini?
Percubaan Penggunaan dan Ralat Ditemui:
Percubaan untuk menggunakan fungsi anak panah sebagai kaedah objek, seperti ditunjukkan di bawah , menghasilkan satu ralat:
var chopper = { owner: 'John', getOwner: () => { return this.owner; } };
Penaakulan:
Fungsi anak panah tidak berfungsi seperti yang diharapkan dalam kaedah objek kerana ia menangkap nilai leksikal ini, yang berada di luar konteks objek. Ini menyebabkan ini merujuk kepada global this atau this bagi fungsi leksikal melampirkan, bukan contoh objek.
Alternatif dan Syor:
Untuk kaedah objek, tradisional sintaks fungsi atau sintaks kaedah ES6 harus digunakan:
// Traditional function syntax var chopper = { owner: 'Zed', getOwner: function() { return this.owner; } }; // ES6 method syntax var chopper = { owner: 'Zed', getOwner() { return this.owner; } };
Tidak terikat Fungsi Anak Panah (Cadangan Ditolak):
Terdapat cadangan untuk fungsi anak panah tidak terikat yang akan memperkenalkan sintaks yang serupa dengan fungsi anak panah tetapi dengan pengikatan ini yang berasingan. Walau bagaimanapun, cadangan ini telah ditolak kerana ia semata-mata mengurangkan boilerplate tanpa menawarkan sebarang fungsi baharu.
Atas ialah kandungan terperinci Bolehkah Fungsi Anak Panah Digunakan sebagai Kaedah Objek ES6?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!