成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

20170605-函數(shù)的arguments

wangxinarhat / 1949人閱讀

摘要:是一個(gè)類數(shù)組對象,包含著傳入函數(shù)中的所有參數(shù)。雖然的主要用途是保存函數(shù)參數(shù),但是這個(gè)對象還有一個(gè)名叫的屬性,該屬性是一個(gè)指針,指明擁有這個(gè)對象的函數(shù)。

arguments

arguments是一個(gè)類數(shù)組對象,包含著傳入函數(shù)中的所有參數(shù)。雖然arguments的主要用途是保存函數(shù)參數(shù),但是這個(gè)對象還有一個(gè)名叫callee的屬性,該屬性是一個(gè)指針,指明擁有這個(gè)arguments對象的函數(shù)。

例子:

function factorial(num){
    if(num<=1){
        return 1
    }else {
        return num * factorial(num-1)
    }
}

上面的代碼實(shí)現(xiàn)了階乘函數(shù)的遞歸實(shí)現(xiàn),但是這個(gè)函數(shù)的執(zhí)行與函數(shù)名factorial緊緊耦合在了一起,如果出現(xiàn)下面這樣的情況,就會(huì)出問題:

var fn = factorial
factorial = null
fn(10)  // error: factorial is not a function

為了解決這種問題,可以使用arguments的callee屬性:

function factorial(num){
    if(num<=1){
        return 1
    }else {
        return num * arguments.callee(num-1)
    }
}

通過使用arguments對象的callee屬性,無論引用函數(shù)使用的是什么名字,都可以保證正常完成遞歸調(diào)用。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/83343.html

相關(guān)文章

  • 20170605-正則表達(dá)式相關(guān)

    摘要:在不設(shè)置全局標(biāo)志的情況下,在同一個(gè)字符創(chuàng)上多次調(diào)用將始終返回第一個(gè)匹配項(xiàng)的信息。 字面量定義正則表達(dá)式 ECMAScript通過RegExp類型來支持正則表達(dá)式 var expression = / pattern / flags:模式(pattern)部分可以是任何簡單或復(fù)雜的正則表達(dá)式,標(biāo)志(flag)部分用來標(biāo)明正則表達(dá)式的匹配模式 正則表達(dá)式的匹配模式支持下列3個(gè)標(biāo)志: ...

    Jenny_Tong 評論0 收藏0
  • 20170605-內(nèi)存泄漏和垃圾回收

    摘要:引用計(jì)數(shù)另一種不太常見的垃圾回收策略是引用計(jì)數(shù)。引用計(jì)數(shù)的含義是跟蹤記錄每個(gè)值被引用的次數(shù)。在采用引用計(jì)數(shù)的策略中,由于函數(shù)執(zhí)行之后,這兩個(gè)對象都離開了作用域,函數(shù)執(zhí)行完成之后,和還將會(huì)繼續(xù)存在,因?yàn)樗麄兊囊么螖?shù)永遠(yuǎn)不會(huì)是。 垃圾回收的必要性 由于字符串、對象和數(shù)組沒有固定大小,所以當(dāng)他們的大小已知時(shí),才能對他們進(jìn)行動(dòng)態(tài)的存儲(chǔ)分配。JavaScript程序每次創(chuàng)建字符串、數(shù)組或?qū)ο髸r(shí)...

    KitorinZero 評論0 收藏0
  • 20170605-String相關(guān)方法

    摘要:首先來看一個(gè)例子我們知道基本數(shù)據(jù)類型有還有一種復(fù)雜數(shù)據(jù)類型基本類型不是對象從邏輯上講是不應(yīng)該有方法的其實(shí)為了讓我們能夠?qū)M(jìn)行相關(guān)操作后臺(tái)已經(jīng)自動(dòng)完成了一系列的處理當(dāng)?shù)诙写a訪問時(shí)訪問過程處于一種讀取模式也就是從內(nèi)存中讀取這個(gè)字符串的值而在 首先來看一個(gè)例子 var s1 = some text; var s2 = s1.substring(2); var s3 = new Strin...

    rollback 評論0 收藏0
  • 20170605-Array相關(guān)方法

    摘要:方法將所有在過濾函數(shù)中返回的數(shù)組元素放進(jìn)一個(gè)新數(shù)組中并返回。方法從左到右為每個(gè)數(shù)組元素執(zhí)行一次回調(diào)函數(shù),并把上次回調(diào)函數(shù)的返回值放在一個(gè)暫存器中傳給下次回調(diào)函數(shù),并返回最后一次回調(diào)函數(shù)的返回值。 創(chuàng)建數(shù)組 var array = new Array(); var array = new Array(10); var array = new Array(red,blue,green);...

    Chaz 評論0 收藏0
  • JavaScript函數(shù)(arguments,this)理解

    摘要:除語法不同外,兩者的區(qū)別在于解析器讀取的順序。解析器會(huì)事先讀取函數(shù)聲明,即使你把函數(shù)聲明放在代碼的末端也沒關(guān)系。修改對象將可能導(dǎo)致命名參數(shù)失去意義。其實(shí)除允許匿名函數(shù)遞歸調(diào)用自身外,并沒有什么太大用處。 javaScript因?yàn)槠湔Z法松散,導(dǎo)致函數(shù)(尤其是this)看似簡單,其實(shí)里面花頭很多。本篇介紹一下JavaScript函數(shù)及其調(diào)用方法。? 函數(shù)聲明和函數(shù)表達(dá)式? ar...

    seanHai 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<