1. 程式人生 > >02 JavaScript語言基礎-物件

02 JavaScript語言基礎-物件

物件

一,簡介

物件屬於一種複合型資料型別,在物件中可以儲存多個不同資料型別的屬性。

二,物件分類

1,內建物件:由ES標準中定義的物件,在任何的ES的實現中都可以使用。
2,宿主物件:由JS的執行環境提供的物件,主要指瀏覽器提供的物件。
3,自定義物件:由開發人員自己建立的物件。

三,建立物件

使用new關鍵字呼叫的函式,是建構函式constructor,建構函式是專門用來建立物件的函式。
語法:var 物件 = new 函式;

示例:

var obj = new Object();

四,新增屬性

在物件中儲存的值被稱為屬性
語法:物件.屬性名 = 屬性值;

示例:obj.name = “張無忌”;

五,呼叫屬性

語法:物件.屬性名

示例:

console.log(obj.name);

六,修改屬性

新屬性覆蓋舊屬性

語法:

物件.屬性名 = 新屬性;

示例:

obj.name = "張芷若";

七,刪除屬性

語法:

delete 物件.屬性名

示例:

delete obj.name;

八,工廠方法建立物件

利用工廠方法建立對個物件

示例:

function createPerson(name,age,sex){
//建立新物件
var obj = new Object
(); //向物件新增屬性 obj.name = name; obj.age = age; obj.sex = sex; sayName:function(){ alert(this.name ); } //將新物件返回 return obj; } var obj1 = createPerson("wa",18,"男"); var obj2 = createPerson("lu",20,"女");

九,建構函式建立物件

使用建構函式建立的物件,可以區分不同物件的型別
建構函式執行流程:

1,立即建立一個新物件
2,將新建的物件設定為函式中this,在建構函式可以使用this來引用新建物件
3,逐行執行函式中的程式碼
4,將新建的物件作為返回值返回

示例:

function Person(name,age,sex){
this.name = name;
this.age = age;
this.sex = sex;
}
var per = new Person();

十,建構函式/原型方式

使用這種混合構造方法在建立物件和類具有靈活性。其原理為:該方式物件的所有非函式屬性使用建構函式定義,物件的函式屬性使用原型方式定義。

示例:

//建構函式內定義屬性
function Car(sColor,iDoors,iMpg){
this.color = sColor;
this.doors = iDoors;
this.mpg = iMpg;
this.drivers = new Array("Mike","Sue");
}
//原型定義函式方法
Car.prototype.showColor = function(){
alert(this.color);
}

十一,動態原型方法

該構造方式與建構函式/原型方式的基本思想相同,不同的方面在於賦予物件方法的位置發生變化,其原理與面嚮物件語言Java構造方法類似。

示例:

function Car(sColor,iDoors,iMgp){
this.color = sColor;
this.doors = sDoors;
this.mgp = iMgp;
this.drivers = new Array("Mike""Sue");

if(typeof Car._initialized == "underfined"){
Car.prototype.ShowColor = function(){
alert(this.color);
}
Cae._initialized = ture;
}
}

該構造方式中的"typeof Car._initialized"的部分最為關鍵,它來判斷是否已給原型賦予了任何方法,該方法只建立賦值一次。