Kaedah dalam Objek ES6: Menggunakan Fungsi Tradisional
Dalam ES6, kaedah objek boleh ditakrifkan dalam dua cara: menggunakan sintaks fungsi tradisional atau sintaks kaedah trengkas. Walaupun kedua-dua pendekatan adalah sah, terdapat beberapa perdebatan tentang sama ada fungsi anak panah juga boleh digunakan untuk kaedah objek.
Pada mulanya, nampaknya fungsi anak panah boleh digunakan sebagai alternatif ringkas kepada fungsi tradisional. Walau bagaimanapun, ralat sintaks muncul, menunjukkan bahawa fungsi anak panah tidak mempunyai akses kepada rujukan objek ini.
Penalaran: Konteks ini dalam Fungsi Anak Panah
Fungsi anak panah berbeza daripada fungsi biasa kerana mereka mewarisi konteks ini daripada skop yang disertakan secara leksikal. Ini bermakna fungsi ini dalam anak panah merujuk kepada ini dalam konteks sekeliling, bukan objek yang kaedah ditakrifkan.
Konsekuensi untuk Kaedah Objek
Dalam konteks kaedah objek, tingkah laku ini menimbulkan masalah. Kaedah objek direka bentuk untuk beroperasi pada objek yang merangkuminya. Oleh itu, rujukan ini mesti menunjuk kepada objek itu. Walau bagaimanapun, fungsi anak panah tidak mempunyai pengikatan ini yang diperlukan untuk memenuhi keperluan ini.
Sintaks Disyorkan untuk Kaedah Objek
Memandangkan batasan fungsi anak panah dalam konteks ini, ia disyorkan untuk menggunakan sintaks fungsi tradisional atau sintaks kaedah ES6 apabila mentakrifkan kaedah objek. Ini memastikan bahawa rujukan ini dalam kaedah merujuk dengan betul kepada objek yang dimilikinya.
Contoh Sintaks Fungsi Tradisional:
var chopper = { owner: 'Zed', getOwner: function() { return this.owner; } };
Contoh Sintaks Kaedah ES6:
var chopper = { owner: 'Zed', getOwner() { return this.owner; } };
Sintaks ini berikan pengikatan ini yang betul dalam kaedah objek, membolehkannya berfungsi seperti yang dimaksudkan. Walaupun fungsi anak panah menawarkan kelebihan dalam senario lain, ia tidak sesuai untuk mentakrifkan kaedah objek yang sewajarnya rujukan ini penting.
Atas ialah kandungan terperinci Bolehkah Fungsi Anak Panah Digunakan sebagai Kaedah Objek dalam ES6?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!