Arguments.callee.caller Penamatan Harta dalam JavaScript
Harta arguments.callee.caller, yang membenarkan akses kepada fungsi panggilan, ialah ditamatkan dalam JavaScript kerana beberapa kebimbangan.
Motivasi untuk Penamatan
Alternatif dengan Ungkapan Fungsi Dinamakan
Dengan ECMAScript 3, ungkapan fungsi yang dinamakan telah diperkenalkan sebagai penyelesaian:
[1,2,3,4,5].map(function factorial(n) { return (!(n>1))? 1 : factorial(n-1)*n; });
Pendekatan ini memberikan beberapa kelebihan:
Penolakan Arguments.callee.caller
Selain isu dengan arguments.callee, Function.caller juga mempunyai implikasi prestasi dan menyukarkan pengoptimuman. Keperluan berterusan untuk menyemak timbunan panggilan yang menghalang sebaris dan pengoptimuman lain. Oleh itu, kedua-dua arguments.callee.caller dan Function.caller telah ditamatkan untuk menghapuskan masalah ini.
Walaupun penamatan, sesetengah penyemak imbas masih menyokong sifat ini, tetapi penggunaannya tidak digalakkan. Amalan terbaik adalah menggunakan pendekatan alternatif, seperti ungkapan fungsi yang dinamakan, untuk mengakses dan mengurus rantai panggilan.
Atas ialah kandungan terperinci Mengapakah sifat `arguments.callee.caller` ditamatkan dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!