VBS教程:VBscript語(yǔ)句-Function 語(yǔ)句
Function 語(yǔ)句
聲明 Function 過(guò)程的名稱、參數(shù)以及構(gòu)成其主體的代碼。
[Public [Default]| Private] Function name [(
arglist
)]
[statements]
[name = expression]
[Exit Function]
[statements]
[name = expression]
End Function
參數(shù)
Public
表示 Function 過(guò)程可被所有腳本中的所有其他過(guò)程訪問(wèn)。
Default
只與 Class 塊中的 Public 關(guān)鍵字一起使用 來(lái)表示 Function 過(guò)程是類的默認(rèn)方法。如果在一個(gè)類中指定了不止一個(gè) Default 過(guò)程,就有錯(cuò)誤發(fā)生。
Private
表示 Function 過(guò)程只可被聲明它的腳本中的其他過(guò)程訪問(wèn)或者如果函數(shù)是一個(gè)數(shù)據(jù)類,那么 Function 過(guò)程只能被該類中的其他過(guò)程訪問(wèn)。
name
Function 的名稱,遵循標(biāo)準(zhǔn)的變量命名約定。
arglist
代表調(diào)用時(shí)要傳遞給 Function 過(guò)程的參數(shù)的變量列表。用逗號(hào)隔開(kāi)多個(gè)變量。
statements
在 Function 過(guò)程的主體中執(zhí)行的任意語(yǔ)句組。
expression
Function 的返回值。
arglist 參數(shù)包含下列語(yǔ)法和部分:
[ByVal | ByRef] varname[( )]
參數(shù)
ByVal
表示該參數(shù)是按值方式傳遞的。
ByRef
表示該參數(shù)按引用方式傳遞。
varname
代表參數(shù)變量的名稱;遵循標(biāo)準(zhǔn)的變量命名約定。
說(shuō)明
如沒(méi)有顯式指定使用 Public或 Private,則 Function 過(guò)程默認(rèn)為公用,即它們對(duì)于腳本中的所有其他過(guò)程是可見(jiàn)的。Function 中局部變量的值在對(duì) 過(guò)程的調(diào)用中不被保留。
不能在任何其他過(guò)程(例如,Sub 或 Property Get)中定義 Function 過(guò)程。
使用 Exit Function 語(yǔ)句可以從 Function 過(guò)程中立即退出。程序繼續(xù)執(zhí)行調(diào)用 Function 過(guò)程的語(yǔ)句之后的語(yǔ)句??稍?Function 過(guò)程的任何位置出現(xiàn)任意個(gè) Exit Function 語(yǔ)句。
與 Sub 過(guò)程類似,Function 過(guò)程是可以獲取參數(shù)、執(zhí)行一系列語(yǔ)句并改變其參數(shù)值的獨(dú)立過(guò)程。與 Sub 過(guò)程的不同之處是:當(dāng)要使用由函數(shù)返回的值時(shí),可以在 表達(dá)式的右邊使用 Function 過(guò)程,這與內(nèi)部函數(shù)的使用方式一樣,例如 Sqr、Cos 或 Chr。
在表達(dá)式中,可以通過(guò)使用函數(shù)名,并在其后用圓括號(hào)給出相應(yīng)的參數(shù)列表來(lái)調(diào)用 Function 過(guò)程。有關(guān)調(diào)用 Function 過(guò)程的詳細(xì)信息,請(qǐng)參閱 Call 語(yǔ)句。
小心 Function 過(guò)程可以是遞歸的,即該過(guò)程可以調(diào)用自身以完成某個(gè)給定的任務(wù)。但是,遞歸可能會(huì)導(dǎo)致堆棧溢出。
要從函數(shù)返回一個(gè)值,只需將值賦給函數(shù)名。在過(guò)程的任意位置都可以出現(xiàn)任意個(gè)這樣的賦值。如果沒(méi)有給 name 賦值, 則過(guò)程將返回一個(gè)默認(rèn)值:數(shù)值函數(shù)返回 0,字符串函數(shù)返回零長(zhǎng)度字符串 ("")。如果在 Function 中沒(méi)有對(duì)象引用被指定給 name(使用 Set),則返回對(duì)象引用的函數(shù)將返回 Nothing。
下面的樣例說(shuō)明如何給一個(gè)名為 BinarySearch 的函數(shù)賦返回值。在此樣例中,將 False 賦給了該函數(shù)名,表示沒(méi)有找到某個(gè)值。
Function BinarySearch(. . .) . . . '未找到該值。返回False值。If lower > upper ThenBinarySearch = FalseExit FunctionEnd If. . .End Function
在 Function 過(guò)程中使用的變量分為兩類:一類是在過(guò)程內(nèi)顯式聲明的,另一類則不是。在過(guò)程內(nèi)顯式聲明的變量(使用 Dim 或等效方法)總是過(guò)程的局部變量。被使用但沒(méi)有在過(guò)程中顯式聲明的變量也是局部變量,除非在該過(guò)程外更高級(jí)別的位置顯式聲明它們。
小心 Function 過(guò)程可以是遞歸的,即該過(guò)程可以調(diào)用自身以完成某個(gè)給定的任務(wù)。但是,遞歸可能會(huì)導(dǎo)致堆棧溢出。
小心 VBScript 可能會(huì)重新排列數(shù)學(xué)表達(dá)式以提高內(nèi)部效率。當(dāng) Function 過(guò)程修改數(shù)學(xué)表達(dá)式中變量的值時(shí),應(yīng)避免在同一表達(dá)式中使用該函數(shù)。
您可能感興趣的文章
- 01-10下載文件到本地運(yùn)行的vbs
- 01-10VBS中的正則表達(dá)式的用法大全 <font color=red>原創(chuàng)&
- 01-10VBS中SendKeys的基本應(yīng)用
- 01-10VBScript教程 第十一課深入VBScript
- 01-10用VBSCRIPT控制ONSUBMIT事件
- 01-10VBScript語(yǔ)法速查及實(shí)例說(shuō)明
- 01-10VBS中Select CASE的其它用法
- 01-10VBScript教程 第七課使用條件語(yǔ)句
- 01-10vbscript 可以按引用傳遞參數(shù)嗎?
- 01-10VBScript教程 第二課在HTML頁(yè)面中添加VBscript代碼


閱讀排行
- 1C語(yǔ)言 while語(yǔ)句的用法詳解
- 2java 實(shí)現(xiàn)簡(jiǎn)單圣誕樹(shù)的示例代碼(圣誕
- 3利用C語(yǔ)言實(shí)現(xiàn)“百馬百擔(dān)”問(wèn)題方法
- 4C語(yǔ)言中計(jì)算正弦的相關(guān)函數(shù)總結(jié)
- 5c語(yǔ)言計(jì)算三角形面積代碼
- 6什么是 WSH(腳本宿主)的詳細(xì)解釋
- 7C++ 中隨機(jī)函數(shù)random函數(shù)的使用方法
- 8正則表達(dá)式匹配各種特殊字符
- 9C語(yǔ)言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實(shí)例
- 10C語(yǔ)言查找數(shù)組里數(shù)字重復(fù)次數(shù)的方法
本欄相關(guān)
- 01-10下載文件到本地運(yùn)行的vbs
- 01-10飄葉千夫指源代碼,又稱qq刷屏器
- 01-10SendKeys參考文檔
- 01-10什么是一個(gè)高效的軟件
- 01-10VBS中的正則表達(dá)式的用法大全 &l
- 01-10exe2swf 工具(Adodb.Stream版)
- 01-10VBS中SendKeys的基本應(yīng)用
- 01-10用VBSCRIPT控制ONSUBMIT事件
- 01-10VBScript教程 第十一課深入VBScript
- 01-10VBScript語(yǔ)法速查及實(shí)例說(shuō)明
隨機(jī)閱讀
- 01-10delphi制作wav文件的方法
- 01-11ajax實(shí)現(xiàn)頁(yè)面的局部加載
- 01-10C#中split用法實(shí)例總結(jié)
- 08-05dedecms(織夢(mèng))副欄目數(shù)量限制代碼修改
- 01-11Mac OSX 打開(kāi)原生自帶讀寫(xiě)NTFS功能(圖文
- 01-10SublimeText編譯C開(kāi)發(fā)環(huán)境設(shè)置
- 01-10使用C語(yǔ)言求解撲克牌的順子及n個(gè)骰子
- 04-02jquery與jsp,用jquery
- 08-05織夢(mèng)dedecms什么時(shí)候用欄目交叉功能?
- 08-05DEDE織夢(mèng)data目錄下的sessions文件夾有什


