JavaScript 对象原型
前面有一章提到无法为已有的对象构造器添加新属性
Person.nationality = "English"; //得到的是undefined
如需向构造器添加一个新属性,则必须把它添加到构造器函数。
function Person(first, last, age, eyecolor) { this.firstName = first; this.lastName = last; this.age = age; this.eyeColor = eyecolor; this.nationality = "English"; }
所有的javascript 对象都是重原型集成属性和方法。
日期对象继承自Date.prototype。数组对象继承自Array.prototype。 Person 对象继承自Person.prototype.
Object.prototype位于原型继承链的顶端:
日期对象,数组对象和Person对象都继承自 Object.prototype。
向对象添加属性和方法
有时,想向所有给定类型的已有对象添加属性(或方法)。
有时,想向对象构造器添加新属性(或方法)。
使用prototype 属性
javascript prototype 属性允许您为构造器添加新属性,新方法
function Person(first, last, age) { this.firstName = first; this.lastName = last; this.age = age; } Person.prototype.nationality = "USA"; Person.prototype.name = function() { return this.firstName + " " + this.lastName; };