请教一个prototype继承的问题
第一种情况
PDCRS={}
PDCRS.Base = function() {}
PDCRS.Base.prototype.Dao = function() {}
function ConfrontationNaming() {
this.Dao();//这里可以正常调用
}
ConfrontationNaming.prototype = new PDCRS.Base();
ConfrontationNaming.prototype.constructor = ConfrontationNaming;
第二种情况
PDCRS={}
PDCRS.Base = function() {}
PDCRS.Base.prototype.Dao = function() {}
PDCRS.Base.prototype.Dao.prototype.saveScore() {}
function ConfrontationNaming() {
this.Dao.saveScore();//这里提示没有saveScore方法
}
ConfrontationNaming.prototype = new PDCRS.Base();
ConfrontationNaming.prototype.constructor = ConfrontationNaming;
请高手解答,要怎样才能使第二种调用能够成功执行?
[解决办法]
function ConfrontationNaming() {
new this.Dao().saveScore();//这里提示没有saveScore方法
}
saveScrore是PDCRS.Base.prototype.Dao这个空间下的,不是PDCRS.Base的,ConfrontationNaming.prototype的原型为 new PDCRS.Base();
[解决办法]
PDCRS={}
PDCRS.Base = function(){return alert(1)}
PDCRS.Base.prototype.Dao = function(){return alert(2)}
PDCRS.Base.prototype.Dao.saveScore = function(){return alert(3)}
/*
function ConfrontationNaming() {
this.Dao().saveScore();// 能用了
}
*/
ConfrontationNaming = new PDCRS.Base();
document.write(ConfrontationNaming);
ConfrontationNaming.Dao();
ConfrontationNaming.Dao.saveScore();
[解决办法]
var a = new PDCRS.Base();
var b = new a.Dao();
b.saveScore();
你是要这个调用方式么?