function ClassA() { //构造函数无任何参数
this.color = "red";
this.sayColor = function(){
alert(this.color);
}
}
function ClassB(name)
{
this.name = name;
this.sayName = function(){
alert(this.name);
}
}
ClassB.prototype = new ClassA();
var objB = new ClassB("这是sayName方法");
var objA = new ClassA();
objA.color = "yellow";
objA.sayColor();
objB.color = "black";
objB.sayColor();
objB.sayName();//output:yellow black 这是sayName方法
原型链的突出之处在于:通过把ClassB的prototype属性设置成ClassA的实例,这样就可以使用所有ClassA定义的属性和方法了。
但是需要注意的是:调用ClassA的构造函数时,没有给它传递参数。这是原型链的标准做法,要确保构造函数没有任何参数