JavaScript/子程序和对象
维基教科书,自由的教学读本
函數(function)是 JavaScript 最重要部分之一。你可以用它整理代碼、減少代碼長度或建立參數。
目录 |
[编辑] 無參數的函數
無參數的函數是十分簡單的。
<script language="javascript"> function helloworld() { alert("Hello, World!"); } </script>
當我們要在 HTML 文檔內調用這個函數,則用:
helloworld();
現在組裝入網頁:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <HTML> <HEAD> <TITLE>Some Page</TITLE> <script language="javascript"> function helloworld() { alert("Hello World!"); } </script> </HEAD> <BODY> <script lang="javascript"> helloworld(); </script> </BODY> </HTML>
不難吧?在這個問題上,我們只採用函數去節省不必要的輸入(而事實上上述示例確實增加了輸入,但只要把握這個思想,大多數情況下都是合用的),但當你學到帶有參數的函數時,那才是函數之所以發光的原因!
[编辑] 帶參數的函數
我們就以一個簡單的例子開始,然後才深入瞭解。
function addsubtract(thenumber) { if(thenumber>5){ thenumber--; } if(thenumber<5){ thenumber++; } return thenumber; }
這個程序以數字為變數。如果thenumber大於5,那麼thenumber就減一;如果thenumber小於5,thenumber則加一。
分解程序:
function addsubtract(thenumber){......}
你應該見過這個東西,只不過是有點不一樣而已。現在在函數名稱後面多了一個(thenumber)。那裡就是我們定義一個將要使用的參數的地方(記得定義變量嗎?它們有相似的一面,但定義參數我們不用var都可以)。
if(thenumber>5){......}
這是假定(if)語句。如果圓括號內的語句是真(true),那麼就繼續執行波形括號內的語句。相似的方法有:
X>Y(如果X大於Y) X<Y(如果X小於Y) X>=Y(如果X大於或等於Y) X<=Y(如果X小於或等於Y) X==Y(如果X等於Y)
將有更多類似方法,將在日後說明。
thenumber--;
假如Javascript是你的第一編程語言,你將不知道這是什麼意思。這十分簡單,就是對變量thenumber減一。這是thenumber = thenumber - 1;的縮寫版本。
thenumber++;
與上述一樣,只不過不是減而是加。
return thenumber;
這表示返回thenumber的值,後述將詳細提及。
下面的代碼就自己研究吧:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <HTML> <HEAD> <TITLE>Some Page</TITLE> <script language="javascript"> function addsubtract(thenumber) { if(thenumber>5){ thenumber--; } if(thenumber<5){ thenumber++; } return thenumber; } </script> </HEAD> <BODY> <script language="javascript"> var number = addsubtract(6); alert(number); </script> </BODY> </HTML>
還有...
var number = addsubtract(6);
這就是方便的地方了。number的值將為5,因為程序addsubtract的參數為6。
[编辑] 對像
[编辑] Date對像
[编辑] 總結
[编辑] 關鍵字this
關鍵字this允許讀取或改變該對象的屬性。
例如:
function PopMachineObject() { this.quarters = 0; this.dollars = 0; } function total_value() { var sum = (this.quarters)*25 + (this.dollars)*100; return sum; } PopMachineObject.prototype.total_value = total_value; function addquarters( increment ) { this.quarters+=increment; } PopMachineObject.prototype.addquarters = addquarters; function adddollars( increment ) { this.dollars+=increment; } PopMachineObject.prototype.adddollars = adddollars; function test() { pop_machine = new PopMachineObject(); pop_machine.addquarters(8); pop_machine.adddollars(1); pop_machine.addquarters(-1); alert( "total in the cash register is: " + pop_machine.total_value() ); }
[编辑] 擴展閱讀
- 十分鐘搞定JavaScript(Javascript in Ten Minutes):快速講解對像形的JavaScript。