?? 9-7.cfm.htm
字號:
<html>
<head>
<title>將腳本分割成函數(函數對象)</title>
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb_2312-80">
<meta NAME="GENERATOR" CONTENT="Microsoft FrontPage 3.0">
</head>
<body>
<font FACE="宋體" SIZE="5"><b>
<p ALIGN="JUSTIFY">將腳本分割成函數(函數對象)</p>
</b></font><font FACE="宋體" SIZE="3">
<p ALIGN="JUSTIFY">當你有一個腳本變得很長或很復雜時,將其分割成幾個獨立的函數是個好辦法,函數是一群語句的集合,你可以調用多次同一個函數,你也可以傳遞參數給函數并從函數獲得返回值。</p>
<p ALIGN="JUSTIFY">對于JScript這樣的面向對象語言,函數實際上也是對象,雖然函數是對象,但它們工作起來就象VBScript的過程和函數一樣(JScript中設有過程),你可以象下面所示那樣明確地建立一個新函數:</p>
<p ALIGN="JUSTIFY"><%</p>
<p ALIGN="JUSTIFY">myfunc=new Function(“myvar”,“myvar2”,“return myvar-myvar2”);</p>
<p ALIGN="JUSTIFY">%></p>
<p ALIGN="JUSTIFY">這個腳本創建了一個名為myfun()的函數,它接收兩個名為myvar和
myvar2的參數,并將一個參數與另一個進行相減。建立了這個函數以后,你可以象下面這樣輸出函數的值:</p>
<p ALIGN="JUSTIFY"><%=myfunc(3,1)%></p>
<p ALIGN="JUSTIFY">在此例中,值3和1被傳給了函數,并從函數獲得返回值2。</p>
<p ALIGN="JUSTIFY">然而你并不需要用這種方法來明確地建立一個函數對象,你也可用下面的方法來建立一個對象。這與你用別的編程語句建立函數是一樣的,如下所示:</p>
<p ALIGN="JUSTIFY"><%</p>
<p ALIGN="JUSTIFY">function myfunc(myvar,myvar2)</p>
<p ALIGN="JUSTIFY">{</p>
<p ALIGN="JUSTIFY">return myvar-myvar2;</p>
<p ALIGN="JUSTIFY">}</p>
<p ALIGN="JUSTIFY">%></p>
<p ALIGN="JUSTIFY">這個腳本建立了一個與上面那個例子中一樣的函數,它有兩個名為myvar和
myvar2的參數,函數通過return語句返回兩個參數和差值。</p>
<p ALIGN="JUSTIFY">注意使用了花括號({})來指明函數體,JScript使用括號來將一群語句集中起來,函數體中可包含多條語句。來看下面的例子:
</p>
<p ALIGN="JUSTIFY"><%</p>
<p ALIGN="JUSTIFY">function emphasize(thestring)</p>
<p ALIGN="JUSTIFY">{</p>
<p ALIGN="JUSTIFY">thestring=thestring.bold();</p>
<p ALIGN="JUSTIFY">thestring=thestring.italics();</p>
<p ALIGN="JUSTIFY">thestring=thestring.big();</p>
<p ALIGN="JUSTIFY">return thestring;</p>
<p ALIGN="JUSTIFY">}</p>
<p ALIGN="JUSTIFY">%></p>
<p ALIGN="JUSTIFY"><%=emphasize(“This is important!”)%></p>
<p ALIGN="JUSTIFY">在此例中,建立了一個函數emphasize(),它接收一個字符串參數,它以黑體、斜體及大字體返回任何傳給它的字符串。</p>
<p ALIGN="JUSTIFY">一個函數可以沒有返回值,也可以沒有任何參數。下面的腳本與上面這個輸出相同的結果:</p>
<p ALIGN="JUSTIFY"><%</p>
<p ALIGN="JUSTIFY">function emphasize()</p>
<p ALIGN="JUSTIFY">{</p>
<p ALIGN="JUSTIFY">thestring=“This is important!”;</p>
<p ALIGN="JUSTIFY">thestring=thestring.bold();</p>
<p ALIGN="JUSTIFY">thestring=thestring.italics();</p>
<p ALIGN="JUSTIFY">thestring=thestring.big();</p>
<p ALIGN="JUSTIFY">%></p>
<p ALIGN="JUSTIFY"><%=thestring%></p>
<p ALIGN="JUSTIFY"><%</p>
<p ALIGN="JUSTIFY">}</p>
<p ALIGN="JUSTIFY">%></p>
<p ALIGN="JUSTIFY"><%=emphasize()%></p>
<p ALIGN="JUSTIFY">在此例中,與前一個腳本不同,字符串變量的值在函數體中給出,這個函數總是返回字符串“This
is important!”,它總是完成同一功能。使用參數和返回值的一個主要的好處,就是它使得函數更具靈活性,因而就更有用。</p>
<p ALIGN="JUSTIFY">注意名為thestring的字符串變量在此例中是怎樣使用的。變量thestring首先在函數中被賦值。由于這個原因,你可能認為這個變量在函數范圍之外是不存在的。然而在此例中,變量thestring實際上在整個腳本中都是存在的.</p>
<p ALIGN="JUSTIFY">要建立一個特定函數的局部變量,你需要在函數體中明確申明它。你可用var語句來實現這一點。來看下面這個腳本中的兩個變量:</p>
<p ALIGN="JUSTIFY"><%</p>
<p ALIGN="JUSTIFY">function greet()</p>
<p ALIGN="JUSTIFY">{</p>
<p ALIGN="JUSTIFY">myvar=“Hello!”;</p>
<p ALIGN="JUSTIFY">var myvar2=“How are you?”;</p>
<p ALIGN="JUSTIFY">return myvar+myvar2;</p>
<p ALIGN="JUSTIFY">}</p>
<p ALIGN="JUSTIFY">myvar2=“Goodbye!”;</p>
<p ALIGN="JUSTIFY">%></p>
<p ALIGN="JUSTIFY"><%=greet()%></p>
<p ALIGN="JUSTIFY"><%=myvar2%></p>
<p ALIGN="JUSTIFY">當執行這個腳本時,字符串“Hello!How are you?Goodbye!”被顯示在瀏覽器上。注意,名為myvar2變量被賦于了不同的值。這個腳本中實際上存在兩個同名的變量。函數中申明的變量myvar2只存在于函數之中。對這個變量賦值不會影響到函數之外的變量myvar2。這就是為什么在最后一句語句中,腳本輸出的是“Goodbye!”而不是“How
are you?”。</p>
</font>
</body>
</html>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -