word; clear: both; text-indent: 2em; color: rgb(24, 30, 51); font-family: PingFangSC, 微軟雅黑, 黑體, Arial, Helvetica, sans-serif; font-size: 18px; background-color: rgb(255, 255, 255);">
word; clear: both; text-indent: 2em; color: rgb(24, 30, 51); font-family: PingFangSC, 微軟雅黑, 黑體, Arial, Helvetica, sans-serif; font-size: 18px; background-color: rgb(255, 255, 255);">函數(shù)的深入使用
1) 可變參數(shù)
函數(shù)的參數(shù)列表可以是任意多個(gè),并且數(shù)據(jù)類型可以是任意的類型,JavaScript的函數(shù)天然支持可變參數(shù),JavaScript有一個(gè)arguments變量可以訪問(wèn)所有傳到函數(shù)內(nèi)部的參數(shù)。
2) javascript創(chuàng)建動(dòng)態(tài)函數(shù)
JavaScript支持創(chuàng)建動(dòng)態(tài)函數(shù),動(dòng)態(tài)函數(shù)必須用Function對(duì)象來(lái)定義(Function是javascript中的一個(gè)對(duì)象,是固定不變的,規(guī)定Function對(duì)象的"F"必須大寫,當(dāng)是function的時(shí)候,我們知道是定義函數(shù)的時(shí)候所使用的一個(gè)關(guān)鍵字:function funName(x,y),當(dāng)是Function的時(shí)候(F大寫的時(shí)候),我們知道是javascript中的對(duì)象)。
創(chuàng)建動(dòng)態(tài)函數(shù)的基本格式:var 變量名 = new Function("參數(shù)1","參數(shù)2","參數(shù)n","執(zhí)行語(yǔ)句");
使用new關(guān)鍵字(new是javascript中一個(gè)關(guān)鍵字,也是固定的,我們?cè)诙x動(dòng)態(tài)函數(shù)的時(shí)候必須要使用new來(lái)創(chuàng)建這個(gè)Function對(duì)象)
我們先定義一個(gè)變量: var 變量名,在這里,變量名是隨便的,然后我們?cè)偈褂胣ew關(guān)鍵字創(chuàng)建一個(gè)Function對(duì)象,然后再把這個(gè)對(duì)象賦值給這個(gè)任意的變量,也就是:var 變量名 = new Function("參數(shù)1","參數(shù)2","參數(shù)n","執(zhí)行語(yǔ)句");Function后面的括號(hào)里先是傳遞給函數(shù)的參數(shù),然后用一個(gè)逗號(hào)(,)隔開然后是這個(gè)函數(shù)要執(zhí)行的功能的代碼
3) 匿名函數(shù)
直接聲明一個(gè)匿名函數(shù),立即使用。用匿名函數(shù)的好處就是省得定義一個(gè)用一次就不用的函數(shù),而且免了命名沖突的問(wèn)題,js中沒(méi)有命名空間的概念,因此很容易函數(shù)名字沖突,一旦命名沖突以最后聲明的為準(zhǔn)。
4) JavaScript不支持函數(shù)的重載
JavaScript沒(méi)有方法重載的說(shuō)法,如果兩個(gè)方法名字一樣,即使參數(shù)個(gè)數(shù)不一樣,那么后面定義的就會(huì)覆蓋前面定義,調(diào)用方法時(shí)永遠(yuǎn)是調(diào)用后定義的那個(gè)。