Javascript Prototype

何为javascript prototype

javascript可以以OO的方式进行编程。Prototype在js中是一个模版对象,用这个模版对象来创建真实的对象,这些对象都将继承prototype中的属性和方法。

如何构建prototype

在js中,创建一个构造函数既创建了一个prototype。像这样:

function person(first, last, age, eyecolor) {
    this.firstName = first;
    this.lastName = last;
    this.age = age;
    this.eyeColor = eyecolor;
}

可以看到,所有添加到this的属性和方法既是添加到了prototype上。这里我们创建了一个名为person的prototype。基于该prototype创建对象的方式就是用new,像这样:

var myFather = new person("John", "Doe", 50, "blue");
var myMother = new person("Sally", "Rally", 48, "green");

如何修改prototype

向原型添加属性或方法的方式有两种。

方式1:直接修改构造方法

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

方式2:用prototype的prototype属性来修改(注意第一个prototype指的整篇所描述的原型对象。第二个prototype指的是该对象的属性)

person.prototype.nationality = "English";

参考地址