JS类的prototype指向到新对象后,其原型为新对象么?求教

kinghome 2013-04-10 03:46:12

var viewBasic = {
container:"#data-box",
options:{
option:null,
product_type:'pc',
list_type:'harvesting',
resource_type:'tmr',
Period_time:null
}
};

function tickerPage(){
this.url = '';
this.columns=['AUTO','LIFE'];
this.players=[null,null];
this.scrolls=[null,null];
};

tickerPage.prototype = viewBasic;
tickerPage.prototype.init = function(){alert('AAAA')};

function statusPage(){
this.beforeStart = null;
this.afterEnd = null;
this.url='';
}
statusPage.prototype = viewBasic;
statusPage.prototype.init = function(){alert('BBBB')}


function view(){
this.ticker = new tickerPage()
this.status = new statusPage()
};
view.prototype = viewBasic;
view.prototype.show = function(){
var o = this;
switch(o.options.option){
case "ticker":
o.ticker.init();
break;
case "status":
o.status.init();
break;
}
}
window.onload=function(){
viewBasic.options.option = "ticker";
var myview = new view();
myview.show();
}


为何这里输出的是 BBB 而不是 AAA
...全文
194 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
functionsub 2013-04-10
  • 打赏
  • 举报
回复
因为tickerPage.prototype跟statusPage.prototype都是指向viewBasic的引用。 你对tickerPage.prototype跟statusPage.prototype扩展init的时候等于给viewBasic进行扩展。 以最后一次为准。

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧