Rumah > Soal Jawab > teks badan
function f (){
return arguments.callee;
}
f();
Apakah fungsi pulang ke sini?
给我你的怀抱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;
}
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
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 denganrrreeef< /code >, memanggil callee
adalah sama dengan memanggilf
sekali lagi, callee kebanyakannya digunakan dalam fungsi tanpa nama, seperti: 🎜
kembali
arguments.callee
di sini adalah bersamaan dengan f
, seperti sebagai: 🎜
rrreee