JS中的匿名函數(shù)遞歸調(diào)用

存不存在一種完全不需要這種給予準(zhǔn)確函數(shù)名(函數(shù)引用變量名)而調(diào)用其的方式呢?

我們知道在任何一個function內(nèi)部,都可以訪問到一個叫做arguments的變量。
打印出這個arguments變量的細(xì)節(jié):
(function(){console.dir(arguments)})(1,2)

JS_function_arguments_callee.png

可以看出他是Arguments的一個實(shí)例,而且從數(shù)據(jù)結(jié)構(gòu)上來講,他是一個類數(shù)組。他除了類數(shù)組的元素成員和length屬性外,還有一個callee方法。 那么這個callee方法是做什么的呢?我們來看下MDN:

callee 是 arguments 對象的屬性。在該函數(shù)的函數(shù)體內(nèi),它可以指向當(dāng)前正在執(zhí)行的函數(shù)。當(dāng)函數(shù)是匿名函數(shù)時,這是很有用的, 比如沒有名字的函數(shù)表達(dá)式 (也被叫做”匿名函數(shù)”)。

//匿名函數(shù)的遞歸調(diào)用
(function() {
    alert("?");
    var loop = setTimeout(arguments.callee,1000);
    if (loop >= 10) {clearTimeout(loop);}
})();
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 第2章 基本語法 2.1 概述 基本句法和變量 語句 JavaScript程序的執(zhí)行單位為行(line),也就是一...
    悟名先生閱讀 4,549評論 0 13
  • 函數(shù)和對象 1、函數(shù) 1.1 函數(shù)概述 函數(shù)對于任何一門語言來說都是核心的概念。通過函數(shù)可以封裝任意多條語句,而且...
    道無虛閱讀 4,945評論 0 5
  • 工廠模式類似于現(xiàn)實(shí)生活中的工廠可以產(chǎn)生大量相似的商品,去做同樣的事情,實(shí)現(xiàn)同樣的效果;這時候需要使用工廠模式。簡單...
    舟漁行舟閱讀 8,122評論 2 17
  • 第3章 基本概念 3.1 語法 3.2 關(guān)鍵字和保留字 3.3 變量 3.4 數(shù)據(jù)類型 5種簡單數(shù)據(jù)類型:Unde...
    RickCole閱讀 5,505評論 0 21
  • ??函數(shù)表達(dá)式是 JavaScript 中的一個既強(qiáng)大有容易令人困惑的特性。定義函數(shù)的的方式有兩種: 函數(shù)聲明; ...
    霜天曉閱讀 887評論 0 1

友情鏈接更多精彩內(nèi)容