caller和callee

這兩天在查閱資料的時(shí)候發(fā)現(xiàn)了一些之前沒見過的小內(nèi)容

1.caller

這個(gè)方法一般來說用的很少,就簡單的介紹一下

var a = function(){
    console.log(a.caller);
}
a();
var b = function(){
    a();
}
b();

這里會有兩個(gè)打印,第一個(gè)打印是null,第二個(gè)打印的是b所對應(yīng)的函數(shù).第一次打印是window去調(diào)用的a函數(shù),window是頂層調(diào)用,所以打印的是null,第二個(gè)打印是在b函數(shù)里進(jìn)行,這樣就能通過a函數(shù)找到對應(yīng)的函數(shù)調(diào)用者.所以caller作用就是返回當(dāng)前這個(gè)函數(shù)的調(diào)用者,在在函數(shù)中調(diào)用有效,否則就返回null.
可以打印一下a.caller的typeof,返回的是function,但是為了防止函數(shù)的循環(huán)調(diào)用,a.caller()會報(bào)錯(cuò)的,綜上來看,這個(gè)屬性,真沒啥用.

2.callee

callee跟caller外觀很像,但是callee是函數(shù)arguments的屬性,它會返回當(dāng)前這個(gè)正在被調(diào)用的函數(shù)

function test(){
    console.log(arguments.callee);
}
test(10, 20)

打印的就是test這個(gè)函數(shù),callee只有一個(gè)屬性,length,這個(gè)屬性的作用是函數(shù)的形參個(gè)數(shù),這要跟arguments.length有區(qū)別,后者是實(shí)參個(gè)數(shù)

function test(a){
    console.log(arguments.callee.length); // 1
    console.log(arguments.length);           // 2
}
test(10, 20)

可以通過這個(gè)屬性,能實(shí)現(xiàn)遞歸函數(shù)的作用,下面就通過他來實(shí)現(xiàn)以下5的階乘

function test(a){
    if(a == 1){
        return 1;
    }
    return arguments.callee(a - 1) * a;
}
console.log(test(5)); // 120
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市鹅很,隨后出現(xiàn)的幾起案子端盆,更是在濱河造成了極大的恐慌济瓢,老刑警劉巖崎淳,帶你破解...
    沈念sama閱讀 216,591評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蝇裤,死亡現(xiàn)場離奇詭異掷漱,居然都是意外死亡全封,警方通過查閱死者的電腦和手機(jī)马昙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來刹悴,“玉大人行楞,你說我怎么就攤上這事⊥猎龋” “怎么了子房?”我有些...
    開封第一講書人閱讀 162,823評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長就轧。 經(jīng)常有香客問我证杭,道長,這世上最難降的妖魔是什么妒御? 我笑而不...
    開封第一講書人閱讀 58,204評論 1 292
  • 正文 為了忘掉前任解愤,我火速辦了婚禮,結(jié)果婚禮上携丁,老公的妹妹穿的比我還像新娘琢歇。我一直安慰自己,他們只是感情好梦鉴,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,228評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著揭保,像睡著了一般肥橙。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上秸侣,一...
    開封第一講書人閱讀 51,190評論 1 299
  • 那天存筏,我揣著相機(jī)與錄音,去河邊找鬼味榛。 笑死椭坚,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的搏色。 我是一名探鬼主播善茎,決...
    沈念sama閱讀 40,078評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼频轿!你這毒婦竟也來了垂涯?” 一聲冷哼從身側(cè)響起烁焙,我...
    開封第一講書人閱讀 38,923評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎耕赘,沒想到半個(gè)月后骄蝇,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,334評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡操骡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,550評論 2 333
  • 正文 我和宋清朗相戀三年九火,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片册招。...
    茶點(diǎn)故事閱讀 39,727評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡吃既,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出跨细,到底是詐尸還是另有隱情鹦倚,我是刑警寧澤,帶...
    沈念sama閱讀 35,428評論 5 343
  • 正文 年R本政府宣布冀惭,位于F島的核電站震叙,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏散休。R本人自食惡果不足惜媒楼,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,022評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望戚丸。 院中可真熱鬧划址,春花似錦、人聲如沸限府。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,672評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽胁勺。三九已至世澜,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間署穗,已是汗流浹背寥裂。 一陣腳步聲響...
    開封第一講書人閱讀 32,826評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留案疲,地道東北人封恰。 一個(gè)月前我還...
    沈念sama閱讀 47,734評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像褐啡,于是被迫代替她去往敵國和親诺舔。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,619評論 2 354

推薦閱讀更多精彩內(nèi)容

  • Function.caller 返回調(diào)用指定函數(shù)的函數(shù)。如果一個(gè)函數(shù)f是在全局作用域內(nèi)被調(diào)用的,則f.caller...
    馬里奧Joseph閱讀 6,510評論 3 12
  • caller返回值是誰調(diào)用了這個(gè)函數(shù),就返回那個(gè)調(diào)用者逸嘀,如果自己調(diào)用自己车要,就返回null callee是argum...
    你聽cmy1994閱讀 3,820評論 1 1
  • 第5章 引用類型(返回首頁) 本章內(nèi)容 使用對象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學(xué)一百閱讀 3,233評論 0 4
  • 關(guān)鍵詞caller :返回一個(gè)函數(shù)的引用,這個(gè)函數(shù)調(diào)用了當(dāng)前的函數(shù)callee:返回正在執(zhí)行的函數(shù)本身的引用崭倘,它是...
    ferrint閱讀 402評論 0 0
  • 語法: 1. 想查看當(dāng)前文件夾及子文件夾里有沒有文件名為“abc”的文件 find . -name abc . :...
    小慕先森閱讀 339評論 0 0