function tigger (){
this.bark = function(){
alert('白首之王');
}
}
function cat(){
this.climb = function(){
alert('我会爬树');
}
}
tigger.prototype= new cat();
var huzi = new tigger();
huzi.climb();
console.log(huzi);
console.log(huzi.__proto__);
根据上述打印信息可以看出tigger原型是cat,cat原型是自己(默认原型其实是个空对象,空对象有个constructor属性,constructor属性又指向了自己),其中cat的空对象原型又指向了Object,因此这样就形成了原型链。
下面实例可以改变原型链顶层的对象属性,改变的属性应用在原型链上的每个对象。
function tigger (){
this.bark = function(){
alert('白首之王');
}
}
function cat(){
this.climb = function(){
alert('我会爬树');
}
}
tigger.prototype= new cat();
Object.prototype.test = function(){
alert('改变原型链顶层的对象属性');
};
var huzi = new tigger();
huzi.climb();
huzi.test();