每个JavaScript对象都有一个原型。 原型也是一个目的。
所有的JavaScript对象继承它们的属性和方法,从他们的原型。
JavaScript的原型
所有的JavaScript对象继承其原型的属性和方法。
对象使用对象文本创建,或用new Object()从一个名为Object.prototype中的原型继承。
与创建的对象new Date()继承Date.prototype。
在Object.prototype中是原型链的顶端。
所有的JavaScript对象(Date, Array, RegExp, Function, ....)从继承Object.prototype 。
创建一个原型
创建一个对象原型的标准方法是使用一个对象的构造函数:
例
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
}
随着一个构造函数,您可以使用new关键字来创建相同的原型新的对象:
例
var myFather = new Person("John", "Doe", 50, "blue");
var myMother = new Person("Sally", "Rally", 48, "green");
试一试» 构造函数是原型Person对象。
它被认为是很好的做法,名字构造函数与大写首字母。
添加的属性和方法的对象
有时你想新的属性(或方法)添加到现有的对象。
有时你想新的属性(或方法)添加到特定类型的所有现有对象。
有时你想新的属性(或方法)添加到对象的原型。
添加一个属性到对象
添加一个新的属性,以现有对象很简单:
该属性将被添加到myFather 。 不myMother 。 没有任何其他人的对象。
添加一个方法到对象
添加一个新的方法,以现有的对象也很容易:
该方法将被添加到myFather 。 不myMother 。
添加属性为原型
当您添加一个新的属性,以现有的对象,因为原型是不是现有对象,你可以不是一个新的属性添加到原型相同的方式。
要将新属性添加到构造函数,则必须将其添加到构造函数:
例
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
this.nationality = "English"
}
试一试» 原型属性可以有原型的值(默认值)。
添加方法的原型
您的构造函数也可以定义方法:
例
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
this.name = function() {return this.firstName + " " + this.lastName;};
}
试一试» 使用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的原型属性还可以让你的新方法添加到现有的原型:
例
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对象的原型。