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

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

使用JavaScript原型對象時,事件方法中的“ this”關鍵字

使用JavaScript原型對象時,事件方法中的“ this”關鍵字

守候你守候我 2019-10-21 14:45:22
我正在嘗試在事件處理程序中訪問JavaScript中原型類的成員變量-我通常會使用“ this”關鍵字(對于事件處理程序,通常使用“ this”關鍵字) 。不用說,我遇到了一些麻煩。以下面的HTML代碼段為例:<a id="myLink" href="#">My Link</a>這段JavaScript代碼:function MyClass(){  this.field = "value"  this.link = document.getElementById("myLink");  this.link.onclick = this.EventMethod;}MyClass.prototype.NormalMethod = function(){  alert(this.field);}MyClass.prototype.EventMethod = function(e){  alert(this.field);}實例化MyClass對象并調用NormalMethod的工作方式與我期望的完全相同(提示說“ value”),但是單擊鏈接會產生未定義的值,因為“ this”關鍵字現在引用了事件目標(anchor()HTML元素) 。我是原型JavaScript樣式的新手,但是在過去,通過閉包,我只是在構造函數中復制了“ this”:var that = this;然后,我可以通過“那個”對象訪問事件方法中的成員變量。這似乎不適用于原型代碼。還有另一種方法可以做到這一點嗎?謝謝。
查看完整描述

3 回答

?
Cats萌萌

TA貢獻1805條經驗 獲得超9個贊

如上所述,使用作為原型庫一部分的bind是解決此問題的一種干凈方法。這個問題是另一個SO問題的重復,這里通過實現bind方法來回答這個問題,但不包括整個原型庫:



查看完整回答
反對 回復 2019-10-21
  • 3 回答
  • 0 關注
  • 557 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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