javascript - arguments.callee
某草草
某草草 2017-05-16 13:22:39
0
4
438
function f (){
    return arguments.callee;
}


f();

Quelle est la fonction du retour ici ?

某草草
某草草

répondre à tous(4)
给我你的怀抱

arguments.callee est cette fonction. Il semble que ES6 ne soit plus recommandé.

Le code de la question est équivalent à

function f (){
    return f;
}
左手右手慢动作

Renvoyer le corps de fonction lui-même

phpcn_u1582

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()();

方法二

增加一行代码: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 🎜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
某草草

Rapport d'erreurs en mode strict. Son utilisation n'est pas recommandée.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal