arguments.callee
Deprecated
Avoid using this feature in new projects.
JavaScript strict mode prohibits accessing arguments.callee.
This feature may be a candidate for removal from web standards or browsers. >
СвойÑÑво callee пÑевдомаÑÑива arguments Ñ
ÑÐ°Ð½Ð¸Ñ ÑÑÑÐ»ÐºÑ Ð½Ð° ÑÑнкÑиÑ-ÑодиÑелÑ.
ÐпиÑание
ÐÑедÑпÑеждение:
Ð ES5 strict mode иÑполÑзование arguments.callee запÑеÑено.
ÐаÑем вообÑе иÑполÑзоваÑÑ arguments.callee?
Ð ÑÐ°Ð½Ð½Ð¸Ñ Ð²ÐµÑÑиÑÑ javaScript оÑÑÑÑÑÑвовала ÑÐ°ÐºÐ°Ñ ÑиÑка, как Named Function Expression и единÑÑвеннÑм ÑпаÑением бÑло ÑвойÑÑво callee. РпÑимеÑÑ:
var f = function test() {
alert(typeof test); //undefined
alert(typeof arguments.callee); //function
};
РнÑнеÑние вÑемена, когда Ð¼Ñ Ñже можем ÑабоÑаÑÑ Ñ NFE, надобноÑÑÑ Ð² иÑполÑзовании ÑвойÑÑва callee Ñама Ñобой оÑпадаеÑ**.**
var f = function test() {
alert(typeof test); //function
};
ÐейÑÑвиÑелÑно незаменимÑм оно оÑÑаÑÑÑÑ Ð²Ñего в одной ÑиÑÑаÑии. Ðогда Ð¼Ñ ÑоздаÑм анонимнÑÑ ÑÑнкÑÐ¸Ñ Ð½Ð°Ð¿ÑÑмÑÑ ÑеÑез конÑÑÑÑкÑÐ¾Ñ Function.
var b = new Function("", "alert(typeof arguments.callee)");
ÐÑÐ¸Ð¼ÐµÑ Ð¸ÑполÑзованиÑ
>ÐÑполÑзование arguments.callee Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÑекÑÑÑии
var factorial = function (n) {
return n == 1 ? 1 : n * arguments.callee(n - 1);
};
factorial(7);
СпеÑиÑикаÑии
| Specification |
|---|
| ECMAScript® 2027 Language Specification > # sec-arguments-exotic-objects > |