Rumah > Artikel > hujung hadapan web > Mengapakah `arguments.callee.caller` Ditamatkan dalam JavaScript?
Mengapa Harta Arguments.callee.caller Ditamatkan dalam JavaScript
Dalam JavaScript, arguments.callee.caller telah diperkenalkan dan kemudiannya ditamatkan. Walau bagaimanapun, sesetengah pelayar masih menyokongnya, manakala yang lain telah meninggalkannya sepenuhnya. Timbul persoalan: mengapakah fungsi yang kelihatan berguna ini ditinggalkan?
Keperluan untuk Rekursi
Dalam早期 versi JavaScript, ungkapan fungsi bernama tidak disokong. Ini menjadikan ia mencabar untuk mencipta ungkapan fungsi rekursif.
Sebagai contoh, pertimbangkan fungsi faktorial:
[1,2,3,4,5].map(factorial);
Tanpa ungkapan fungsi bernama, kod ini tidak akan berfungsi. Sifat arguments.callee memberikan penyelesaian:
[1,2,3,4,5].map(function(n) { return (!(n>1))? 1 : arguments.callee(n-1)*n; });
Kelemahan Arguments.callee
Walau bagaimanapun, arguments.callee datang dengan beberapa kelemahan:
Penyelesaian ECMAScript 3
ECMAScript 3 memperkenalkan ungkapan fungsi bernama, menghapuskan keperluan untuk hujah.callee.
Untuk contoh:
[1,2,3,4,5].map(function factorial(n) { return (!(n>1))? 1 : factorial(n-1)*n; });
Pendekatan ini menawarkan beberapa kelebihan berbanding hujah.callee:
Kesimpulan
Penyingkiran argumen.callee. pemanggil adalah penting untuk meningkatkan keupayaan pengoptimuman JavaScript dan memastikan tingkah laku yang konsisten semasa panggilan fungsi. Ungkapan fungsi bernama menyediakan alternatif yang lebih dipercayai dan cekap untuk pengulangan dan mengakses konteks panggilan.
Atas ialah kandungan terperinci Mengapakah `arguments.callee.caller` Ditamatkan dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!