cari

Rumah  >  Soal Jawab  >  teks badan

javascript - arguments.callee

function f (){
    return arguments.callee;
}


f();

Apakah fungsi pulang ke sini?

某草草某草草2843 hari yang lalu445

membalas semua(4)saya akan balas

  • 给我你的怀抱

    给我你的怀抱2017-05-16 13:24:39

    arguments.callee adalah fungsi ini Nampaknya ES6 tidak lagi disyorkan.

    Kod soalan adalah bersamaan dengan

    function f (){
        return f;
    }

    balas
    0
  • ringa_lee

    ringa_lee2017-05-16 13:24:39

    Mengembalikan fungsi badan itu sendiri

    balas
    0
  • phpcn_u1582

    phpcn_u15822017-05-16 13:24:39

    Jika anda ingin mengetahui tujuan kod anda dan fungsi arguments.callee, anda boleh mula-mula ikuti saya dan ubah suai kod anda dua kali, lihat kesannya, dan ringkaskan sendiri, kemudian lihat penjelasan kasar

    Kaedah 1

    Tambah baris kod: alert(1); dan tambahkan kurungan lain selepas fn() yang dipanggil [tukar kepada fn()() ], akhirnya sebagai: 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();

    Kaedah 2🎜 🎜Tambah baris kod: alert(1);, dan tukar arguments.callee; kepada arguments.callee();, akhirnya sebagai berikut: 🎜 rrreee
    🎜Penjelasan🎜 🎜argumen ialah objek terbina dalam JS dan wujud dalam mana-mana fungsi [fungsi], manakala pemanggil ialah kaedah dalam objek argumen yang menunjuk kepada ontologi fungsi yang memanggilnya Ini bermakna ia bersamaan dengan f< /code >, memanggil callee adalah sama dengan memanggil f sekali lagi, callee kebanyakannya digunakan dalam fungsi tanpa nama, seperti: 🎜
    rrreee

    Mengenai kembali

    🎜Pemulangan di sini adalah untuk mengembalikan keseluruhan fungsi itu sendiri·f
    Melalui penjelasan di atas, anda boleh mengetahui bahawa arguments.callee di sini adalah bersamaan dengan f, seperti sebagai: 🎜 rrreee

    balas
    0
  • 某草草

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

    Ralat melaporkan dalam mod ketat. Menggunakan ini tidak disyorkan.

    balas
    0
  • Batalbalas