gpt4 book ai didi

javascript - 获取函数内对象的引用作为js中的事件绑定(bind)。?

转载 作者:行者123 更新时间:2023-11-28 20:44:34 25 4
gpt4 key购买 nike

我有一个像这样的构造函数对象。

var Cons = function(me){
this.name= me;
this.ele = document.getElementById("element");
this.ele.addEventListener("click",this.fnClick,false);
}

以及一些作为原型(prototype)扩展的方法

 Cons.prototype.getme= function(){
return this.me;
}
Cons.prototype.fnClick= function(){
alert(this.getme())
}
var initZ = new Cons("test");

所以我的问题是当im“fcClick”作为绑定(bind)函数执行时“this”将引用绑定(bind)的HTML元素,而不是当前实例对象,

那么我如何在“fnClick”中传递“this”的引用..?

jsfiddle link

最佳答案

使用this.fnClick.bind(this),或者,对于不支持绑定(bind)的浏览器:

var Cons = function(me){
this.name= me;
this.ele = document.getElementById("element");

var self = this;
function handler() {
self.fnClick(arguments);
}
this.ele.addEventListener("click", handler, false);
}

参见http://jsfiddle.net/Fy5ZV/1/ (getme() 返回 this.name)

关于javascript - 获取函数内对象的引用作为js中的事件绑定(bind)。?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13717192/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com