我正在嘗試在事件處理程序中訪問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;然后,我可以通過“那個”對象訪問事件方法中的成員變量。這似乎不適用于原型代碼。還有另一種方法可以做到這一點嗎?謝謝。
使用JavaScript原型對象時,事件方法中的“ this”關鍵字
守候你守候我
2019-10-21 14:45:22