在《你不知道的JS》中,有一個(gè)委托控件對(duì)象的例子,使用了jquery,我想用原生js改寫其中遇到這句this.$el.click(this.onClick.bind(this));改寫一直失敗。麻煩各位可以給我解惑。我的方案結(jié)果點(diǎn)擊按鈕控制臺(tái)無反應(yīng) Button.build=function($where){ this.insert($where); this.$el.onclick=function(){
Button.onClick.bind(this);
}
};點(diǎn)擊控制臺(tái)顯示Button "undefined" clicked! Button.build=function($where){ this.insert($where); this.$el.onclick=function(){
Button.onClick.call(this);
}
};點(diǎn)擊后顯示Uncaught TypeError: Cannot read property 'call' of undefinedButton.build=function($where){
this.insert($where); this.$el.onclick=function(){ this.onClick.call(this);
}
};分析this.$el.onclick之后,console.log(this),顯示的是一個(gè)dom元素<button>xxx</button>疑問組件綁定click事件如何調(diào)用自身的方法?jquery是如何實(shí)現(xiàn)這個(gè)綁定的?謝謝大家!源代碼:
JS面向?qū)ο髸r(shí),組件的click事件怎么調(diào)用自身的方法?
慕妹3146593
2018-09-04 14:13:19