2018-11-22 關(guān)于 arguments.callee

arguments.callee

函數(shù)內(nèi)粹懒, 有兩個特殊對象: arguments 和 this

arguments 的主要用途今魔, 是保存函數(shù)參數(shù)勺像,默認(rèn)包含所有傳入函數(shù)內(nèi)的參數(shù),但這個對象還有屬性错森,名為callee吟宦,callee是一個指針,指向該arguments對象所在的函數(shù)涩维,因此:


因此殃姓,經(jīng)典階乘函數(shù):

function fn(num){
? ? if(num <= 1) {

? ? ? ? return 1

????}
? return num * fn(num-1)
}

也可以這么寫:

function fn(num){? ??

? ? if(num<=1){?

? ? ? ? return 1

????}

return num * arguments.callee(num-1)

}

那為啥要這么寫?在函數(shù)有名字并且函數(shù)名不會改變時,這么寫沒有必要蜗侈,只是函數(shù)的執(zhí)行與函數(shù)名耦合到了一起篷牌,為了解耦合,才使用arguments.callee() 的寫法踏幻,如下:

var fn2 = fn;? // fn引用上面的方法

fn2(3) // 6

fn = function(){return 0}? ? // 重寫fn 方法

fn2(3) //? ?6? ? ? ? // fn2依然返回預(yù)期的結(jié)果

fn(3)//? ?0? ? ? ? // fn 被重寫

fn創(chuàng)建了一個遞歸對象娃磺,fn2引用了該對象, 給fn重新賦值的時候叫倍,相當(dāng)于開辟了新內(nèi)存改變了fn的指針,此時fn2依然指向遞歸對象豺瘤,因此結(jié)果如上吆倦。

但arguments.callee() 現(xiàn)在棄用了,原因: arguments是一個很大的對象坐求,不僅僅只有我們看到的這樣蚕泽,每次遞歸調(diào)用時都要重新創(chuàng)建該對象,因此操作arguments很消耗瀏覽器性能桥嗤。


argumetns是棄用了须妻,但是如果還想用上面的寫法,那么泛领。荒吏。。渊鞋。

function fn(num){? ??


return (function infn(num){

????if(num <=1){? ??

????????return 1

? ? }

? ? return num * infn(num-1)

? ? })(num)

}

hhhhhhhhhhhhhhhhh, 就是用一個函數(shù)把遞歸包一下绰更。。锡宋。儡湾。。好像不是什么很好的方案执俩,但實用徐钠,這樣也能實現(xiàn)解耦合的目的。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末役首,一起剝皮案震驚了整個濱河市尝丐,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌宋税,老刑警劉巖摊崭,帶你破解...
    沈念sama閱讀 223,126評論 6 520
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異杰赛,居然都是意外死亡呢簸,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,421評論 3 400
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來根时,“玉大人瘦赫,你說我怎么就攤上這事「蛴” “怎么了确虱?”我有些...
    開封第一講書人閱讀 169,941評論 0 366
  • 文/不壞的土叔 我叫張陵,是天一觀的道長替裆。 經(jīng)常有香客問我校辩,道長,這世上最難降的妖魔是什么辆童? 我笑而不...
    開封第一講書人閱讀 60,294評論 1 300
  • 正文 為了忘掉前任宜咒,我火速辦了婚禮,結(jié)果婚禮上把鉴,老公的妹妹穿的比我還像新娘故黑。我一直安慰自己,他們只是感情好庭砍,可當(dāng)我...
    茶點故事閱讀 69,295評論 6 398
  • 文/花漫 我一把揭開白布场晶。 她就那樣靜靜地躺著,像睡著了一般怠缸。 火紅的嫁衣襯著肌膚如雪诗轻。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,874評論 1 314
  • 那天揭北,我揣著相機與錄音概耻,去河邊找鬼。 笑死罐呼,一個胖子當(dāng)著我的面吹牛鞠柄,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播嫉柴,決...
    沈念sama閱讀 41,285評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼厌杜,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了计螺?” 一聲冷哼從身側(cè)響起夯尽,我...
    開封第一講書人閱讀 40,249評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎登馒,沒想到半個月后匙握,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,760評論 1 321
  • 正文 獨居荒郊野嶺守林人離奇死亡陈轿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,840評論 3 343
  • 正文 我和宋清朗相戀三年圈纺,在試婚紗的時候發(fā)現(xiàn)自己被綠了秦忿。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,973評論 1 354
  • 序言:一個原本活蹦亂跳的男人離奇死亡蛾娶,死狀恐怖灯谣,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蛔琅,我是刑警寧澤胎许,帶...
    沈念sama閱讀 36,631評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站罗售,受9級特大地震影響辜窑,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜寨躁,卻給世界環(huán)境...
    茶點故事閱讀 42,315評論 3 336
  • 文/蒙蒙 一谬擦、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧朽缎,春花似錦、人聲如沸谜悟。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,797評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽葡幸。三九已至最筒,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蔚叨,已是汗流浹背床蜘。 一陣腳步聲響...
    開封第一講書人閱讀 33,926評論 1 275
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蔑水,地道東北人邢锯。 一個月前我還...
    沈念sama閱讀 49,431評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像搀别,于是被迫代替她去往敵國和親丹擎。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,982評論 2 361

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

  • 工廠模式類似于現(xiàn)實生活中的工廠可以產(chǎn)生大量相似的商品歇父,去做同樣的事情蒂培,實現(xiàn)同樣的效果;這時候需要使用工廠模式。簡單...
    舟漁行舟閱讀 7,784評論 2 17
  • 第2章 基本語法 2.1 概述 基本句法和變量 語句 JavaScript程序的執(zhí)行單位為行(line)榜苫,也就是一...
    悟名先生閱讀 4,153評論 0 13
  • 單例模式 適用場景:可能會在場景中使用到對象护戳,但只有一個實例,加載時并不主動創(chuàng)建垂睬,需要時才創(chuàng)建 最常見的單例模式媳荒,...
    Obeing閱讀 2,076評論 1 10
  • 人這一輩子,最疼莫過于白發(fā)人送黑發(fā)人么伯,如果痛苦可以分等級疟暖,最疼莫過于喪子之痛,任何人經(jīng)歷過都會五臟俱裂田柔,六神無主俐巴。...
    李景贊閱讀 277評論 0 0
  • 前幾天聽艾熱李佳隆唱《星球墜落》欣舵,覺得有點甜。 想想你對我來說缀磕,就是那個想要摘下星星給你缘圈,摘下月亮給你的人⊥嗖希可是經(jīng)...
    人生雜技家閱讀 1,636評論 1 5