JavaScript 物件

JavaScript 中的一切都是物件:字串、數字、陣列、日期,等等。

在 JavaScript 中,物件是擁有屬性和方法的資料。

JavaScript的物件是一種無序的集合資料類型,它由若干鍵值對組成。

物件定義

你可以使用字元來定義和建立JavaScript 物件:

<!DOCTYPE html>
<html>
<head> 
<meta charset="utf-8"> 
<title>php中文网(php.cn)</title> 
<script language="JavaScript">
        var person = new Object();
     person.name="kevin";
     person.age=31;
     alert(person.name);
     alert(person["age"])
</script>
</head>
<body>
</body>
</html>

物件屬性

可以說"JavaScript 物件是變數的容器" 。

但是,我們通常認為 "JavaScript 物件是鍵值對的容器"。

鍵值對通常寫法為 name : value (鍵與值以冒號分割)。

鍵值對在 JavaScript 物件通常稱為 物件屬性。

JavaScript 物件是屬性變數的容器。

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

PHP 中的關聯數組Python 中的字典C 語言中的雜湊表Java 中的雜湊映射Ruby 和Perl 中的雜湊表

JavaScript的物件是動態類型,你可以自由地為一個物件新增或刪除屬性:

var xiaoming = {
   name: '小明'

};
xiaoming.age; // undefined

#xiaoming.age = 18; // 新增一個age屬性

xiaoming.age; // 18

delete xiaoming .age; // 刪除age屬性

xiaoming.age; // undefined

delete xiaoming['name']; // 刪除name屬性

xiaoming.name; // undefined

delete xiaoming.school; // 刪除一個不存在的school屬性也不會報錯誤


物件方法

物件的方法定義了一個函數,並作為物件的屬性儲存。

物件方法透過新增 () 呼叫 (作為一個函數)。

此實例存取了person 物件的fullName() 方法:

<!DOCTYPE html>
<html>
<head> 
<meta charset="utf-8"> 
<title>php中文网(php.cn)</title> 
</head>
<body>
<p id="demo"></p>
<script>
var person = {
    firstName: "Tom",
    lastName : "Jay",
    id : 666,
    fullName : function() 
      {
       return this.firstName + " and " + this.lastName;
    }
};
      document.getElementById("demo").innerHTML = person.fullName();
</script>
</body>
</html>

存取物件方法

你可以使用下列語法建立物件方法:

methodName : function() { code lines }

你可以使用下列語法存取物件方法:

objectName.methodName()

通常fullName() 是作為person 物件的一個方法, fullName 是作為一個屬性。

有多種方式可以創建,使用和修改 JavaScript 物件。

同樣也有多種方式用來創建,使用和修改屬性和方法。



繼續學習
||
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> </head> <body> <script> function Person(name,age,job) { this.name=name; this.age=age; this.job=job;   this.friends=["Jams","Martin"]; } Person.prototype.sayFriends=function() { alert(this.friends); }; var person1 = new Person("kevin",31,"SE"); var person2 = new Person("Tom",30,"SE"); person1.friends.push("Joe"); person1.sayFriends();//Jams,Martin,Joe person2.sayFriends();//Jams,Martin </script> </body> </html>