JavaScript -- 對象

JavaScript 對象


JavaScript 對象是擁有屬性和方法的數據。類似 Object-c 的類對象。


真實生活中的對象,屬性和方法

真實生活中,一輛汽車是一個對象。
對象有它的屬性,如重量和顏色等,方法有啓動停止等:

property method
car.name = Fiat car.start()
car.model = 500 car.stop()
car.weight = 850kg car.drive()
car.color = white car.brake()

所有汽車都有這些屬性, 但是每款車的屬性都不盡相同。


所有汽車都擁有這些方法, 但是它們被執行的時間都不盡相同。


JavaScript 對象

在所有面向對象的計算機語言中,幾乎所有的事物都是對象,JavaScript也不例外。

在 JavaScript 中,對象是非常重要的,當你理解的面向對象的思想,就可以瞭解JavaScript。

我們可以通過 JavaScript 變量的賦值,爲JavaScript對象賦值。

 //以下代碼爲變量 car 設置值爲 "Fiat" :
 var car = "Fiat"; 

 //對象也是一個變量,但對象可以包含多個值(多個變量)。
 var car = {type:"Fiat", model:500, color:"white"};

在以上實例中,3 個值 (“Fiat”, 500, “white”) 賦予變量 car。
在以上實例中,3 個變量 (type, model, color) 賦予變量 car。

JavaScript 對象是變量的容器。

對象定義

你可以使用字符來定義和創建 JavaScript 對象:

    var person = {fristName : "Jerry", lastName : "Doe", age : 25, eyeColor : "blue"};

其中 定義JavaScript對象可以跨越多行, 空格跟換行不是必須的。

對象屬性

可以說 “JavaScript 對象是變量的容器”。

但是,我們通常認爲”JavaScript”對象是鍵值對的容器。

鍵值對通常寫法爲 ** key : value** (鍵與值以冒號分割),鍵值對的存在。

類似的鍵值對的寫法類似於:

  • PHP 中的關聯數組
  • OC/Swift 中的字典
  • C 語言中的哈希表
  • Java 中的哈希映射
  • Ruby 和 Perl 中的哈希表

訪問對象屬性

你可以通過兩種方式訪問對象屬性:

    person.lastName;
    person[lastName];

JavaScript函數


函數是由事件驅動或者當它被調用時執行的可重複使用的代碼塊。

函數就是包裹在花括號中的代碼塊,前面使用了關鍵詞 function:

function functionName (){
    //執行代碼
}

當調用改函數時,會執行函數內的代碼。

可以再某件事件發生時直接調用函數(比如當用戶點擊按鈕時),並且可由 JavaScript 在任何位置進行調用。

JavaScript 對大小寫敏感。關鍵詞function 必須是小寫的,並且必須以函數名稱相同的大小寫開調用函數。


調用帶參數的函數

在調用函數時, 可由向函數傳遞值,這些值被稱爲參數。

這些參數可以在函數中使用。

可以發送任意多的參數,由逗號(,)分隔

myFunction(argument1, argument2)

當聲明函數時,請把參數作爲變量來聲明:

function myFunction(var1, var2){
    //代碼
}

示例

<button onclick="myFunction('Harry Potter','Wizard')">點擊這裏</button>
<script>
function myFunction(name,job){
    alert("Welcome " + name + ", the " + job);
}
</script>

帶有返回值的函數

有時,我們會希望函數將值返回調用它的地方。

通過使用 return 語句就可以實現。

在使用 return 語句時, 函數會停止執行,並返回指定的值。

 function myFunction()
{
      var x=5;
      return x;
}

注意: 整個 JavaScript 並不會停止執行,僅僅是函數。JavaScript 將繼續執行代碼,從調用函數的地方。 函數調用將被返回值取代:

var myVar = myFunction()

myVar 變量的值是 5,也就是函數 “myFunction()” 所返回的值。 即使不把它保存爲變量,也可以使用返回值:

document.getElementById("demo").innerHTML=myFunction();

局部 JavaScript 變量

在 JavaScript 函數內部聲明的變量(使用var)是局部變量,所以只能在局部訪問他。(該變量的作用域是局部的)。

您可以在不同的函數中使用名稱相同的局部變量,因爲只有聲明過該變量的函數才能識別出該變量。 只要函數運行完畢,本地變量就會被刪除。


全局 JavaScript 變量

在函數外聲明的變量是全局變量,網頁上的所有腳本和函數都能訪問它。


JavaScript 變量的生存期

JavaScript 變量的生命期從它們被聲明的時間開始。

局部變量會在函數運行以後被刪除。

全局變量會在頁面關閉後被刪除。


向未聲明的 JavaScript 變量分配值

如果您把值賦給尚未聲明的變量,該變量將被自動作爲全局變量聲明。 這條語句:

carname="Volvo";

將聲明一個全局變量 carname,即使它在函數內執行。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章