Prototypes ng Object sa JavaScript

Ang lahat ng JavaScript objek ay nangangalaga ng mga katangian at paraan mula sa pangunahing kapaligiran.

Sa nakaraang kabanata, natutunan namin kung paano gamitinConstructor ng objek:

实例

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

亲自试一试

Nakikita namin na ikawHindiMagdagdag ng bagong katangian sa constructor ng umiiral na objek:

实例

Person.nationality = "English";

亲自试一试

Kung gusto mong magdagdag ng bagong katangian sa constructor, dapat mong idagdag ito sa constructor function:

实例

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

亲自试一试

Pangunahing kapaligiran

Ang lahat ng JavaScript objek ay nangangalaga ng mga katangian at paraan mula sa pangunahing kapaligiran.

Ang Date object ay nagmumula sa Date.prototype. Ang Array object ay nagmumula sa Array.prototype. Ang Person object ay nagmumula sa Person.prototype.

Ang Object.prototype ay nasa itaas ng linya ng pangunahing kapaligiran:

Ang Date object, Array object at Person object ay nagmumula sa Object.prototype.

Magdagdag ng katangian at paraan sa objek

Ilang beses, gusto mong magdagdag ng bagong katangian (o paraan) sa lahat ng nakahandang objek ng ganitong uri.

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

使用 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 对象的原型。