如何在函数中调用变量?

时间:2015-03-20 07:45:07

标签: javascript

请参阅以下代码,

var XClass = function () {
    this.dataMember = "hello world";

    $("div").on("click", "button", function() {
        console.log(this.dataMember);   //error 
    });  

}

如何在 on 功能中访问this.dataMember?我在go上搜索了js。

3 个答案:

答案 0 :(得分:3)

尝试将this分配给变量:

var XClass = function () {
    var that = this;
    this.dataMember = "hello world";

    $("div").on("click", "button", function() {
        console.log(that.dataMember); 
    });  
}

这样,that将引用当前的XClass对象。否则,在事件处理程序回调中,this引用被单击的对象。

答案 1 :(得分:1)

使用bind设置上下文

var XClass = function () {
    this.dataMember = "hello world";

    $("div").on("click", "button", function() {
        console.log(this.dataMember);   //error 
    }.bind(this));  
}

答案 2 :(得分:1)

this分配给变量:

var XClass = function () {
    var self = this;
    this.dataMember = "hello world";

    $("div").on("click", "button", function() {
        console.log(self.dataMember);   // no error 
    });  
}