recherche

Maison  >  Questions et réponses  >  le corps du texte

javascript - arguments.callee

function f (){
    return arguments.callee;
}


f();

Quelle est la fonction du retour ici ?

某草草某草草2843 Il y a quelques jours444

répondre à tous(4)je répondrai

  • 给我你的怀抱

    给我你的怀抱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;
    }

    répondre
    0
  • ringa_lee

    ringa_lee2017-05-16 13:24:39

    Renvoyer le corps de fonction lui-même

    répondre
    0
  • phpcn_u1582

    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

    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, 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

    répondre
    0
  • 某草草

    某草草2017-05-16 13:24:39

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

    répondre
    0
  • Annulerrépondre