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); //可以访问私有变量
}