javascript继承的疑惑

function ClassA() {
}

ClassA.prototype.color = "blue";
ClassA.prototype.sayColor = function () {
    alert(this.color);
};

function ClassB() {
}

ClassB.prototype = new ClassA();

如果写成以下方式,会有什么问题?
function ClassA() {
    this.color = "blue";
    this.sayColor = function(){
        alert(this.color);
    }
}
function ClassB() {
}
ClassB.prototype = new ClassA();
 
没有问题啊,这个也是继承,最好在后面加上[code="javascript"]

ClassB.prototype.constructor = Class [/code]。看来你对Javascript中的原型和原性链不太熟,推荐阮一峰的几篇文章[url]http://www.ruanyifeng.com/blog/2011/06/designing_ideas_of_inheritance_mechanism_in_javascript.html[/url]

ClassB.prototype.constructor = Class 在Class 是没法直接访问ClassB 的私有变量的。
ClassA.prototype.color = "blue";
ClassA.prototype.sayColor = function () {
alert(color); 去掉this 就无法找到color
};

var color = "blue";
this.sayColor = function(){
alert(color); //可以访问私有变量
}