繁体   English   中英

从javascript中类组件之一的事件侦听器访问类的实例

[英]Access an instance of a class from an event listener of one of the class components in javascript

我正在寻找一种从其组件之一的事件侦听器内部访问对象实例的方法。

function FormField() {

    this.variable = "initial";

    this.container = new Container();
    this.container.addEventListener("mousedown", function(evt) {

         // this.variable = "modified";
    });
}

即,将鼠标放在容器上将能够识别容器所属的类的实例,并在其方法中使用该实例。

最简单的方法是创建一个直接引用实例的新变量,如下所示:

this.container = new Container();
var self = this;
this.container.addEventListener("mousedown", function(evt) {
     console.log(self);
});

您应该将此上下文存储到本地var self:

    function FormField() {
    var self = this;
    self.variable = "initial";

    this.container = new Container();
    this.container.addEventListener("mousedown", function(evt) {

         // self.variable = "modified";
    });
}

您可以指定this给其他一些变量,然后访问它在事件处理程序,即

function FormField() {
    var self = this;

    self.variable = "initial";

    self.container = new Container();
    self.container.addEventListener("mousedown", function(evt) {
         // use self.variable = "modified";
    });
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM