原型是一种机制,JavaScript对象通过该机制彼此继承特征。
在上一章中,我们学习了如何使用构造函数:
function User(fname, lname, age, loc) {
this.firstName = fname;
this.lastName = lname;
this.age = age;
this.location = loc;
}
var Seagull = new User("Seagull", "Anna", 22, "New Delhi");
var tarush = new User("Tarush", "Balodhi", 34, "Bihar");
我们还了解到不能将新属性添加到现有的对象构造函数中:
User.weapon = "Sword";
要向构造函数添加新属性,必须将其添加到构造函数中:
function User(fname, lname, age, loc) {
this.firstName = fname;
this.lastName = lname;
this.age = age;
this.location = loc;
this.weapon = "Sword";
}
有时我们想在后期向构造函数添加新的属性和方法,该构造函数将在所有对象(示例)之间共享。答案是对象原型。
使用原型属性
prototype属性使您可以向构造函数添加属性和方法。
在此示例中,该prototype属性允许您向User对象构造函数添加新属性:
function User(fname, lname, age, loc) {
this.firstName = fname;
this.lastName = lname;
this.age = age;
this.location = loc;
}
User.prototype.weapon = "Sword";
在此示例中,该prototype属性允许您向User对象构造函数添加新方法:
function User(fname, lname, age, loc) {
this.firstName = fname;
this.lastName = lname;
this.age = age;
this.location = loc;
}
User.prototype.fullName = function() {
return this.firstName + " " + this.lastName;
};
注意:仅修改您自己的原型。切勿修改标准(内置)JavaScript对象的原型。