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

擴展閱讀[编辑]

<=目錄