ReactNative入門學(xué)習(xí)筆記——ECMAScrip函數(shù)

一.函數(shù)

函數(shù)是由這樣的方式進(jìn)行聲明的:關(guān)鍵字 function、函數(shù)名、一組參數(shù),以及置于括號中的待執(zhí)行代碼。

函數(shù)的基本語法:

function ?name ?( arg0 , arg1 , ... , argN ) {

statement

}

二.arguments對象

在函數(shù)代碼中,使用特殊對象 arguments,開發(fā)者無需明確指出參數(shù)名,就能訪問它們。

例如:arguments [ 0 ],代表函數(shù)中第一個(gè)參數(shù)。

屬性 arguments.length 可以檢測函數(shù)的參數(shù)個(gè)數(shù)。

函數(shù)重載:

function ?do ( ) ?{

if ( arguments.length ?== 1 ) ?{

alert ( arguments [ 0 ] ?+ ?1 ) ;

}

else ?if ( arguments.length? == 2 )? {

alert ( arguments [ 0 ]? +? 10) ;

}

}

do ( 5 ) ; ? ? ? ? // 輸出6

do ( 6 , 8) ; ? ? // 輸出16

三.Function 對象(類)

Function 類可以表示開發(fā)者定義的任何函數(shù)。

用 Function 類直接創(chuàng)建函數(shù)的語法如下:

var function_name ?= ?new function (?arg1,?arg2, ?... ,?argN?,function_body?)

在上面的形式中,每個(gè)arg都是一個(gè)參數(shù),最后一個(gè)參數(shù)是函數(shù)主體(要執(zhí)行的代碼)。這些參數(shù)必須是字符串。

四.閉包

閉包,指的是詞法表示包括不被計(jì)算的變量的函數(shù),也就是說,函數(shù)可以使用函數(shù)之外定義的變量。

例如:

var iBaseNum = 10;

function addNum(iNum1, iNum2) {

? ? ?function doAdd() {

? ? ? ? ? return iNum1 + iNum2 + iBaseNum;

? ? ?}

? ? ?return doAdd();

}

這里,函數(shù) addNum() 包括函數(shù) doAdd() (閉包)。內(nèi)部函數(shù)是一個(gè)閉包,因?yàn)樗鼘@取外部函數(shù)的參數(shù) iNum1 和 iNum2 以及全局變量 iBaseNum 的值。 addNum() 的最后一步調(diào)用了 doAdd(),把兩個(gè)參數(shù)和全局變量相加,并返回它們的和。

這里要掌握的重要概念是,doAdd() 函數(shù)根本不接受參數(shù),它使用的值是從執(zhí)行環(huán)境中獲取的。

可以看到,閉包是 ECMAScript 中非常強(qiáng)大多用的一部分,可用于執(zhí)行復(fù)雜的計(jì)算。

提示:就像使用任何高級函數(shù)一樣,使用閉包要小心,因?yàn)樗鼈兛赡軙兊梅浅?fù)雜。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

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