- 相關(guān)推薦
javascript中的函數分析
在腳本語(yǔ)言JavaScript中,函數的定義是由事件驅動(dòng)或者當它被調用時(shí)可重復使用的代碼塊。在JavaScript的標準ECMAscript中,把函數表述為可以隨時(shí)隨地運行的語(yǔ)句。
(一)首先是函數的定義:
在ECMAscript函數的定義是 關(guān)鍵字function 函數名( 參數){主體;return(返回值)};這四部分組成的,但是在腳本語(yǔ)言中函數的定義卻分為三種方式定義:
形式1:function 函數名(參數){主體;返回值};這種定義的方式和ECMAscript的方式一樣;
形式2:var 函數名=function (參數){主體;返回值};
形式3:var 函數名=new Function (參數){主體;返回值};
在Javascript中只有這三種定義函數的方式,接下來(lái)說(shuō)說(shuō)每一種定義方式的使用的注意事項和具體的用法:第一種定義方式是最簡(jiǎn)單,最容易理解的,他就是簡(jiǎn)簡(jiǎn)單單的為我們定義一個(gè)函數,供我們在接下來(lái)的編程中使用;第二中方式是通過(guò)我們構造一個(gè)匿名函數,并且把這個(gè)匿名函數的傳遞給一個(gè)我們定義的函數變量來(lái)實(shí)現的,他在閉包中是很常見(jiàn)的,為的是使在全局域內,我們能使用內層函數,讓我們的函數形成閉包結構。第三種方式是通過(guò)new出一個(gè)新的內存空間存放我們的匿名函數,并賦值與我們定義的函數名,這個(gè)函數是基于我們的匿名函數創(chuàng )建的。這種方式主要應用在原型里面。
其實(shí)通過(guò)觀(guān)察,我們會(huì )發(fā)現,好像這三種定義方式之間聯(lián)系很緊密,感覺(jué)第三種第一方式好像是前面2種和第三種的組合使用,實(shí)事也是你看到的這樣,所以對于這3種定義方式我們知道就行了,知道他們分別什么時(shí)候使用就好了。再有,我要說(shuō)的是這三種定義方式的數據類(lèi)型,是基于基本類(lèi)型來(lái)說(shuō)的,和基于對象類(lèi)型的數據是一樣的,在基于對象數據類(lèi)型里,我們把函數稱(chēng)為對象。當你接觸了對象的定義時(shí),很明顯的發(fā)現,他們的定義方式基本上是一樣的。只不過(guò)函數名給稱(chēng)為對象,定義的形式是很類(lèi)似的。記住一點(diǎn),對象就是函數,函數就是對象。
(二)幾種特殊的函數:
(1) 匿名函數
所謂的匿名函數,就是沒(méi)有函數名的函數。這種函數的有點(diǎn)就是說(shuō),它的調用很難,這也就保證了安全性。那么我們應該如何調用匿名函數呢?來(lái)看個(gè)例子:
通過(guò)把匿名函數作為參數傳遞給add變量,我們就可以調用我們的匿名函數了。
(2)自調函數
自調函數也是匿名函數的一種,它沒(méi)有作為參數傳遞給其他變量,也沒(méi)有自己的函數名,也就是說(shuō)它不能被別人調用,只能自己調用自己。
圖中寫(xiě)的方式就是自調函數的使用,這個(gè)函數被兩個(gè)小括號包圍著(zhù),第一個(gè)小括號的作用是封裝,把我們編寫(xiě)的匿名函數封裝在其中,第二個(gè)小括號就是調用了,我們還可以給他初始化,就像第二個(gè)自調函數的寫(xiě)法一樣。
其實(shí)自調函數主要用于實(shí)現一次性的功能,就是說(shuō)在執行周期內只運行一次,所以在我們進(jìn)行網(wǎng)頁(yè)的初始化時(shí),可以考慮使用自調函數。
(3)回調函數
回調函數,就是把自身作為返回值或者實(shí)參傳遞的這樣的函數。
函數a()和b()就是回調函數的應用。
(4)內部函數
這個(gè)就是一句話(huà)了,就是存在于函數內部的一類(lèi)函數。
(三)函數的優(yōu)點(diǎn):
1.大量重復的語(yǔ)句寫(xiě)在函數里面,可以重復的調用;
2.簡(jiǎn)化編程語(yǔ)言,讓編程變得模塊化;
3.優(yōu)化代碼結構;
(四)注意事項:
1.函數的書(shū)寫(xiě)時(shí),可以先調用,在書(shū)寫(xiě);因為JavaScript在程序開(kāi)始時(shí),會(huì )對我們所有的函數和變量進(jìn)行隱式的聲明;
2.函數不會(huì )自己執行,只有在發(fā)生函數調用時(shí),才會(huì )分配空間,才能使用;
3.函數名相同時(shí),默認執行寫(xiě)在下面的函數;
4.函數名若有一個(gè)單詞構成,則首字母小寫(xiě),若有多個(gè)單詞構成,第一個(gè)單詞后其他單詞首字母大寫(xiě);
(五)函數的變量域:
1.全局變量
寫(xiě)在全局域的變量稱(chēng)為全局變量;
2.局部變量
定義在函數內部,并用var 聲明的變量稱(chēng)為局部變量;如果定義在函數內部,但未用var 聲明,則看做是全局變量。
我們要清楚的知道,學(xué)習JavaScript語(yǔ)言就是學(xué)習各種各樣的函數,所以對于函數的理解一定深刻一些,不然在以后的學(xué)習過(guò)程中,我們會(huì )遇到各種函數的嵌套啊,什么的各種函數糅雜在一起,就會(huì )更加的理不清頭緒。
【javascript中的函數分析】相關(guān)文章:
Javascript函數的定義和用法分析08-15
JavaScript中push(),join() 函數實(shí)例詳解09-05
PHP中的排序函數區別分析08-23
最常用的20個(gè)javascript方法函數09-10
JavaScript中的with關(guān)鍵字07-24
在Java中執行JavaScript代碼07-14
javascript分析運算符用法08-07