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
Méthode 1
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()();
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
🎜Explication🎜
🎜arguments est un objet intégré dans JS et existe dans n'importe quelle fonction [fonction], tandis que l'appelé est une méthode dans l'objet arguments qui pointe vers l'ontologie de fonction qui l'appelle, ce qui signifie qu'elle est équivalente à 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 : 🎜
rrreee
arguments.callee est cette fonction. Il semble que ES6 ne soit plus recommandé.
Le code de la question est équivalent à
Renvoyer le corps de fonction lui-même
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
Méthode 1
Ajoutez une ligne de code :
alert(1);
et ajoutez un autre crochet après lefn()
appelé [changez enfn()()
], enfin comme :alert(1);
并在调用的fn()
后面再添加一个括号[ 改为fn()()
],最终如:方法二
增加一行代码:
alert(1);
,并将arguments.callee;
改为arguments.callee();
,最终如下:关于
return
这里的return就是返回整个函数本身·f
Méthode 2🎜 🎜Ajoutez une ligne de code :通过上面的解释你可以知道这里的
arguments.callee
就等同于f
alert(1);
, et remplacezarguments.callee;
pararguments.callee();
, enfin comme suit : 🎜 rrreeef code >, appeler
callee
équivaut à appeler à nouveauf
. En fait, callee est principalement utilisé dans des fonctions anonymes, telles que : 🎜. rrreeeÀ propos du
🎜Le retour ici est de renvoyer la fonction entière elle-même·fretour
Grâce à l'explication ci-dessus, vous pouvez savoir que le
arguments.callee
ici est équivalent àf
, tel comme : 🎜 rrreeeRapport d'erreurs en mode strict. Son utilisation n'est pas recommandée.