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。

對象[編輯]

在JavaScript中,包括函數、數組在內,除了字面量以外的一切都是對象

創建對象[編輯]

Array對象[編輯]

Function對象[編輯]

Date對象[編輯]

date對象: 用於處理日期和時間,可以通過new關鍵詞來定義date對象,如:

   new MyDate = new 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() );
}

擴展閱讀[編輯]

<=目錄