လုပ်ငန်းအမျိုးအစား

所有 JavaScript 对象都从原型继承属性和方法。

在前一章里,我们学到了如何使用对象构造器

实例

function Person(first, last, age, eyecolor) {
    this.firstName = first;
    this.lastName = last;
    this.age = age;
    this.eyeColor = eyecolor;
}
var myFather = new Person("Bill", "Gates", 62, "blue");
var myMother = new Person("Steve", "Jobs", 56, "green");

亲自试一试

我们已经认识到,您无法为已有的对象构造器添加新属性:

实例

Person.nationality = "English";

亲自试一试

如需向构造器添加一个新属性,则必须把它添加到构造器函数:

实例

function Person(first, last, age, eyecolor) {
    this.firstName = first;
    this.lastName = last;
    this.age = age;
    this.eyeColor = eyecolor;
    this.nationality = "English";
}

亲自试一试

原型继承

所有 JavaScript 对象都从原型继承属性和方法。

日期对象继承自 Date.prototype。数组对象继承自 Array.prototype。Person 对象继承自 Person.prototype。

Object.prototype 位于原型继承链的顶端:

Date အခြားအမျိုးအစား၊ Array အခြားအမျိုးအစား နှင့် Person အခြားအမျိုးအစားတို့သည် Object.prototype မှ အစီအစဉ်ကို ယူဆောင်ပါသည်。

အခြားအမျိုးအစားများ သို့ အခြားအမျိုးအစားများ နှင့် အမည်ပေးသော အခြားအမျိုးအစားများ ထပ်ပေါင်းရန်

အခါတွင် သင်သည် အခြားအမျိုးအစားတို့ကို အသုံးပြုသော အခြားအမျိုးအစားများအား ခွင့်ပြုထားသော အခြားအမျိုးအစားများ သို့ အသစ်သော အခြားအမျိုးအစားများ သို့မဟုတ် အမည်ပေးသော အခြားအမျိုးအစားများ ထပ်ပေါင်းရန် မျှော်လင့်သည်။

有时,您希望向对象构造器添加新属性(或方法)。

使用 prototype 属性

JavaScript prototype 属性允许您为对象构造器添加新属性:

实例

function Person(first, last, age, eyecolor) {
    this.firstName = first;
    this.lastName = last;
    this.age = age;
    this.eyeColor = eyecolor;
}
Person.prototype.nationality = "English";

亲自试一试

JavaScript prototype 属性也允许您为对象构造器添加新方法:

实例

function Person(first, last, age, eyecolor) {
    this.firstName = first;
    this.lastName = last;
    this.age = age;
    this.eyeColor = eyecolor;
}
Person.prototype.name = function() {
    return this.firstName + " " + this.lastName;
};

亲自试一试

请只修改您自己的原型。绝不要修改标准 JavaScript 对象的原型。