我正在嘗試在事件處理程序中訪問JavaScript中原型類的成員變量-我通常會(huì)使用“ this”關(guān)鍵字(對(duì)于事件處理程序,通常使用“ this”關(guān)鍵字) 。不用說,我遇到了一些麻煩。以下面的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);}實(shí)例化MyClass對(duì)象并調(diào)用NormalMethod的工作方式與我期望的完全相同(提示說“ value”),但是單擊鏈接會(huì)產(chǎn)生未定義的值,因?yàn)椤?this”關(guān)鍵字現(xiàn)在引用了事件目標(biāo)(anchor()HTML元素) 。我是原型JavaScript樣式的新手,但是在過去,通過閉包,我只是在構(gòu)造函數(shù)中復(fù)制了“ this”:var that = this;然后,我可以通過“那個(gè)”對(duì)象訪問事件方法中的成員變量。這似乎不適用于原型代碼。還有另一種方法可以做到這一點(diǎn)嗎?謝謝。
使用JavaScript原型對(duì)象時(shí),事件方法中的“ this”關(guān)鍵字
守候你守候我
2019-10-21 14:45:22