Rumah  >  Artikel  >  hujung hadapan web  >  Adakah Fungsi Anak Panah dalam ES6 Mempunyai Akses kepada Objek Argumen?

Adakah Fungsi Anak Panah dalam ES6 Mempunyai Akses kepada Objek Argumen?

DDD
DDDasal
2024-10-18 15:55:03504semak imbas

Do Arrow Functions in ES6 Have Access to Arguments Objects?

Dokumentasi Rasmi tentang Argumen dalam Fungsi Anak Panah ES6

Dalam bidang ES6, fungsi anak panah telah mencetuskan perdebatan mengenai perlakuan mereka terhadap hujah kata kunci. Bertentangan dengan pengesyoran awal TC39, enjin penyemak imbas seperti Chrome, Firefox dan Node.js nampaknya membenarkan fungsi anak panah mengakses objek argumen.

Walau bagaimanapun, Babel, transpiler JavaScript yang popular, mengikut pendirian awal TC39 dan tidak membenarkan tingkah laku ini. Ketidakkonsistenan ini menyebabkan pembangun mencari dokumentasi rasmi untuk menyelesaikan kekaburan.

Menurut [ECMAScript 2015 Language Specification](https://www.ecma-international.org/ecma-262/6.0/#sec- arrow-function-definitions), fungsi anak panah tidak mempunyai hujah sendiri yang mengikat. Apabila memanggil fungsi anak panah, tiada objek argumen dibuat.

Secara khusus, spesifikasi menyatakan:

  • "Fungsi anak panah tidak mempunyai argumen sendiri yang mengikat dalam skopnya; tiada objek argumen dicipta apabila memanggil mereka." (14.8.1)
  • "Ungkapan fungsi anak panah menilai kepada fungsi yang mempunyai [[ThisMode]] ditetapkan kepada leksikal." (14.2.16.1)
  • "Apabila fungsi sedemikian dipanggil, instantiasi pengisytiharan tidak mencipta objek argumen." (14.2.16.1)
  • "Malah terdapat nota khusus (18 a) yang menyatakan bahawa 'Fungsi anak panah tidak pernah mempunyai objek argumen.'" (14.2.16.1)

Berdasarkan pada dokumen rasmi ini, jelas menunjukkan bahawa tingkah laku Babel adalah betul dan fungsi anak panah tidak sepatutnya mempunyai akses kepada objek hujah dalam skopnya.

Atas ialah kandungan terperinci Adakah Fungsi Anak Panah dalam ES6 Mempunyai Akses kepada Objek Argumen?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn