亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Javascript中關于原型繼承的問題

Javascript中關于原型繼承的問題

天然 2016-01-07 16:44:36
本例只是以學習JS原型鏈為主,如果是對象封裝或其他方法不在考慮?!鞠胍獙崿F】:父類調用 DOM0級事件處理程序,子類調用IE和DOM2級事件處理程序。實例化子類可以為元素節點添加事件和刪除,如果不能滿足則繼續查找父類中的方法。【問題】 感覺是 this的問題。在線調試地址:http://jsbin.com/dahefo/1?//html??<input?type='button'?value='按鈕'?id='btn'> //基類?定義初始的DOM0級事件處理程序 function?Basevent(ele,type,func){ ??this.ele=ele; ??this.type=type; } Basevent.prototype={ ??constructor:Basevent, ??addEvent:function(){ ?? ele['on'+type]=func;//添加? ??},? ??removeEvent:function(){ ?? ele['on'+type]=Null;//刪除 ??}? }; //子類繼承基類?定義DOM2級和IE兼容版本 function?Subevent(ele,type,func){ ??Basevent.apply(this,arguments); } Subevent.prototype=Object.create(Basevent.prototype); Subevent.prototype={ ?? ??constructor:Subevent, ??//添加事件 ??addEvent:function(){ ????if(this.ele.addEventListener){?//DOM2級 ???? ?????this.ele.addEventListener(type,func,false); ????}else{?//ele.atachEvent?IE ???? alert(2); ??????this.ele.atachEvent('on'+type,func); ????} ??}, ??//刪除事件 ??removeEvent:function(){ ????if(this.ele.removeEventListener){?//DOM2級 ??????this.ele.removEventListener(type,func,false); ????}else{?//ele.detachEvent?IE ??????this.ele.detachEvent('on'+type,func); ????}??? ??} ??? }; /*********************/ var?btn=document.getElementById('btn'); function?showMes(){ ??alert('執行了一個點擊事件!'); } var?demo=new?Subevent(btn,'click',showMes); demo.addEvent();
查看完整描述

1 回答

?
舞歌

TA貢獻8條經驗 獲得超1個贊

Subevent.prototype=Object.create(Basevent.prototype); Subevent.prototype={……} 這個,你把Subevent的原型賦值了一個新的對象,就不能去繼承Basevent.prototype了,可以改為 Subevent.prototype={……} Object.setPrototypeOf(Sbevent.prototype,Basevent.prototype) 這樣就把原型對象加上了。
查看完整回答
1 反對 回復 2017-04-22
  • 1 回答
  • 1 關注
  • 1378 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號