gpt4 book ai didi

javascript - 在 javascript 原型(prototype)事件处理程序中保留 'this' 引用

转载 作者:行者123 更新时间:2023-12-03 12:34:16 24 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Preserving a reference to "this" in JavaScript prototype functions [duplicate]

(7 个回答)


6年前关闭。




保存 this 的正确方法是什么?存储在对象原型(prototype)中的事件处理程序中的 javascript 引用?我想远离创建像'_this'或'that'这样的临时变量,我不能使用像jQuery这样的框架。我看到很多人谈论使用“绑定(bind)”功能,但不确定如何在我给定的场景中实现它。

var Example = function(foo,bar){
this.foo = foo;
this.bar = bar;
};
Example.prototype.SetEvent = function(){
this.bar.onclick = this.ClickEvent;
};
Example.prototype.ClickEvent = function(){
console.log(this.foo); // logs undefined because 'this' is really 'this.bar'
};

最佳答案

我找到 bind()是迄今为止最干净的解决方案:

this.bar.onclick = this.ClickEvent.bind(this);

顺便说一句,其他 this被称为 that按照惯例,经常。

关于javascript - 在 javascript 原型(prototype)事件处理程序中保留 'this' 引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8100469/

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