首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

请问一个prototype继承的有关问题

2013-07-16 
请教一个prototype继承的问题第一种情况PDCRS{}PDCRS.Base function() {}PDCRS.Base.prototype.Dao f

请教一个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();
[解决办法]

引用:
Quote: 引用:

PDCRS={}
PDCRS.Base = function(){return alert(1)}
PDCRS.Base.prototype.Dao = function(){return alert(2)} 
PDCRS.Base.prototype.Dao.prototype.saveScore = function(){return alert(3)}

function ConfrontationNaming() {
   this.saveScore();// 能用了
}

ConfrontationNaming.prototype = new PDCRS.Base().Dao();
// ConfrontationNaming.prototype.constructor = ConfrontationNaming;
// 这句话没用了,因为ConfrontationNaming没有构造器了
用火狐调试无误的

我的意思是想要Base里有多个对象比如Dao,Html 然后这些对象也有多个方法。 
我在子类都要继承他们 然后调用的时候就this.Dao.saveScore();   this.Html.Img(); 类似这样
直接用类方法在子类中添加函数
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();
你是要这个调用方式么?

热点排行