Maison > Questions et réponses > le corps du texte
function f (){
return arguments.callee;
}
f();
Quelle est la fonction du retour ici ?
给我你的怀抱2017-05-16 13:24:39
arguments.callee est cette fonction. Il semble que ES6 ne soit plus recommandé.
Le code de la question est équivalent à
function f (){
return f;
}
phpcn_u15822017-05-16 13:24:39
Si vous voulez connaître le but de votre code et la fonction de arguments.callee, vous pouvez d'abord me suivre et modifier votre code deux fois, voir l'effet et le résumer vous-même, puis regarder l'explication approximative
Ajoutez une ligne de code : alert(1);
et ajoutez un autre crochet après le fn()
appelé [changez en fn()()
], enfin comme : alert(1);
并在调用的fn()
后面再添加一个括号[ 改为fn()()
],最终如:
function f()
{
alert(1);
return arguments.callee();
}
f()();
增加一行代码:alert(1);
,并将arguments.callee;
改为arguments.callee();
,最终如下:
function f()
{
alert(1);
return arguments.callee();
}
f();
解释
arguments 是JS里面一个内置对象,存在于任何函数[ function ]中,而callee则是arguments对象中的一个方法指向调用它的这个函数本体,这里就是说它就相当于是
f
,调用callee
等同于你又调用了一次f
,其实callee多数情况是在匿名函数内部使用,如:
(function(){
alert(1);
return arguments.callee();
})()
return
这里的return就是返回整个函数本身·f
通过上面的解释你可以知道这里的arguments.callee
就等同于f
function f()
{
alert(1);
return arguments.callee;
}
f();
↑↓等价于
function f()
{
alert(1);
return function f(){
alert(1);
};
}
f();
Méthode 2🎜
🎜Ajoutez une ligne de code : alert(1);
, et remplacez arguments.callee;
par arguments.callee();
, enfin comme suit : 🎜
rrreee
f code >, appeler callee
équivaut à appeler à nouveau f
. En fait, callee est principalement utilisé dans des fonctions anonymes, telles que : 🎜.
rrreee
À propos du retour
🎜Le retour ici est de renvoyer la fonction entière elle-même·f
Grâce à l'explication ci-dessus, vous pouvez savoir que le arguments.callee
ici est équivalent à f
, tel comme : 🎜
rrreeerépondre0
某草草2017-05-16 13:24:39
Rapport d'erreurs en mode strict. Son utilisation n'est pas recommandée.