JavaScript 对象原型

Kai na kai na JavaScript kai a kai kula da kai na jinkirin na jinkirin.

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

实例

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

亲自试一试

Kula na jinkirin na jinkirin

Kai na kai na JavaScript kai a kai kula da kai na jinkirin na jinkirin.

Ceeniyar na tsawon wuri sun zaune a kai na Date.prototype. Ceeniyar na gina sun zaune a kai na Array.prototype. Ceeniyar na mutum sun zaune a kai na Person.prototype.

Object.prototype yana tsawon wuri na tsawon kula na jinkirin na jinkirin.

Ceeniyar na tsawon wuri, ceeniyar na gina da ceeniyar na mutum sun zaune a kai na Object.prototype.

Raba ceeniyar da kai a gina a kama kai a gina a kada koyar da a gina.

Barki, ana kai kawarce wanda haka a kama kai a gina a kada ceeniyar, a haka a kama kai a gina a kada koyar da a haka.

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

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