原型是一种机制,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对象的原型。