gpt4 book ai didi

javascript - 在 Javascript 中访问事件处理程序内的类成员变量

转载 作者:行者123 更新时间:2023-12-03 21:43:26 27 4
gpt4 key购买 nike

我有一个关于从类使用的事件处理程序内部访问 Javascript 类成员变量的正确方法的快速问题。例如:

function Map() {
this.x = 0;
this.y = 0;

$("body").mousemove( function(event) {
this.x = event.pageX; // Is not able to access Map's member variable "x"
this.y = event.pageY; // Is not able to access Map's member variable "y"
});
}

事件处理程序中的“this.x”不是更改“Map”类的成员变量,而是尝试影响触发事件的元素的“x”成员变量。从事件处理程序中访问“Map”类的成员变量的正确方法是什么?

任何帮助将不胜感激 - 我对此一直有点摸不着头脑。

干杯,查理

最佳答案

由于 this 在事件上下文中发生变化(通常指向global),因此您需要在事件外部存储对您自己的引用:

function Map() {
this.x = 0;
this.y = 0;
var _self = this;
$("body").mousemove( function(event) {
_self.x = event.pageX; // Is now able to access Map's member variable "x"
_self.y = event.pageY; // Is now able to access Map's member variable "y"
});
}

关于javascript - 在 Javascript 中访问事件处理程序内的类成员变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3076010/

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