更改原型
原型继承提供了一个很强大的行为,能够使得所有基于原型的对象即刻发生变化。对于熟悉静态变量的人来说,原型上的属性 就像是 从原型 创建的对象上的 静态变量。
//1.定义原型对象
var proto = {
sentance : 4, //监禁年限
probation: 2 //缓刑年限
};
//2.定义原型对象的构造函数
var Prisoner = function(name, id) {
this.name = name;
this.id = id;
};
//3.将构造函数关联到原型对象
Prisoner.prototype = proto;
//4.实例化对象-用工厂函数实例化原型对象
var makePrisoner = function(name, id) {
var prisoner = Object.create( proto );
prisoner.name = name;
prisoner.id = id;
return prisoner;
};
var firstPrisoner = makePrisoner( 'aa', 'a11' );
var secondPrisoner = makePrisoner( 'bb', 'b22' );
如果在上面的示例的最后检查firstPrisoner或者secondPrisoner,会发现继承属性sentence被设置为4。
...