學習:JS中建立自己的物件和在定義中包含方法
阿新 • • 發佈:2018-12-09
1.建立自己的物件
要建立自己的物件例項,必須首先為其定義一個建構函式。建構函式建立一個新物件,賦予物件屬性,並在合適的時候賦予物件方法
// people 是有3個引數的構造器 function people(name, age, sex){ // 屬性:姓名 this.name = name; // 屬性:年齡 this.age = age; // 屬性:性別 this.sex = sex; } // 定義了物件構造器後,用new運算子建立物件例項 var zhangsan = new people('張三', 18, '男'); var lisi = new people('李四', 19, '男');
可以給物件例項新增屬性以改變該例項,但是用相同的構造器生成的其他物件例項中並不包括這些屬性,除非你特意新增這些屬性在其他例項中。
// zhangsan的附加屬性
zhangsan.car = '賓士';
console.log(zhangsan.car);
// lisi並沒有新增car屬性
console.log(lisi.car); // undefined
如果要將物件所有例項的附加屬性顯示出來,必須將它們新增到建構函式或構造器原型物件中。
// 將屬性 eat 加到 people 原型物件 people.prototype.eat = '肉嘎嘎'; zhangsan.eat = '雞肉'; console.log(zhangsan.eat); // 雞肉 console.log(lisi.eat); // 肉嘎嘎
2.在定義中包含方法
可以在物件的定義中包含方法(函式)。一種方法是在引用別處定義的函式的建構函式中新增一個屬性
// people 是有3個引數的構造器 function people(name, age, sex){ // 屬性:姓名 this.name = name; // 屬性:年齡 this.age = age; // 屬性:性別 this.sex = sex; // 這裡新增toString方法 // 注意在函式的名稱後沒有加圓括號 // 這不是一個函式呼叫,而是對函式自身的引用 this.toString = peopleToString; } // 實際是用來顯示people物件內容的函式 function peopleToString(){ return "name:"+this.name+"\n"+ "age:"+this.age+"\n"+ "sex:"+this.sex; } var lisi = new people('李四', 18, "女"); console.log(lisi);