1. 程式人生 > >學習:JS中建立自己的物件和在定義中包含方法

學習:JS中建立自己的物件和在定義中包含方法

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