为了账号安全,请及时绑定邮箱和手机立即绑定

使用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 关注
  • 542 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号