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

时间:2013-06-17 19:18:26

标签: javascript events listener event-listener

我正在寻找一种从其中一个组件的事件监听器中访问对象的实例的方法。

function FormField() {

    this.variable = "initial";

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

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

即。容器上的mousedown将能够识别容器属于哪个类的实例,并在其方法中使用此实例。

3 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

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

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

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

答案 2 :(得分:0)

您可以将this分配给其他变量,然后在事件处理程序中访问它,即

function FormField() {
    var self = this;

    self.variable = "initial";

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