gpt4 book ai didi

javascript - 如何通过引用 JavaScript 中的事件处理程序来传递变量?

转载 作者:数据小太阳 更新时间:2023-10-29 04:38:51 27 4
gpt4 key购买 nike

我用 JavaScript 模拟了一个类;它的代码在这里:

function myclass()
{
this.count ;

this.init = function(){
$("div.mybtn").click({n:this},function(e){
e.data.n.count++;
});
}

this.getCount = function(){
alert(this.count);
}
}

然后我创建了这个类的一个实例并执行了它的方法 init(),但是当我点击任何 div.mybtn 元素时,它并没有增加值this.count.
对象 this 似乎是按值而非引用传递给事件处理程序的。
如何通过引用将变量传递给事件处理程序?

最佳答案

你不能递增undefined,你必须从某个地方开始:

function myclass() {
this.count=0; // start counting at zero !!!

this.init = function(){
$("div.mybtn").on('click', {n:this},function(e){
e.data.n.count++;
e.data.n.getCount();
});
}

this.getCount = function(){
console.log(this.count);
}
}

var c = new myclass();

c.init()

DEMONSTRATION

关于javascript - 如何通过引用 JavaScript 中的事件处理程序来传递变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17669026/

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