JavaScript - 调用类函数onclick

时间:2015-08-07 13:27:55

标签: javascript jquery class javascript-events

我希望在触发onclick事件时从类中调用“member”函数。 onclick事件本身应绑定在类中。这就是我所拥有的:

var MyClass = function()
{
    this.value = 'hello';

    this.update = function()
    {
        console.log(this.value);
        // Do some things with this.value
    };

    $('#button').click(this.update);
};

浏览器在更新函数中投诉this.value未定义。

2 个答案:

答案 0 :(得分:3)

在处理函数中,this指的是您点击的按钮。为了规避它,您可以将this引用存储到局部变量,然后使用它。在这种情况下,最常用的变量名称是selfthat

var MyClass = function() {
    var self = this;
    self.value = 'hello';
    self.update = function() {
        console.log(self.value);
        // Do some things with self.value
    };
    $('#button').click(self.update);
};

或者正如其他人所提到的,您可以明确地使用MyClass.update

答案 1 :(得分:1)

this不是指MyClass

var MyClass = function () {
    var _this = this;
    this.value = 'hello';
    this.update = function () {
        alert(_this.value);
        // Do some things with this.value
    }
    this.click = function () {
        $('#button').click(_this.update);
    }

    this.click();
};

var myClassOBJ = new MyClass();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="button">Click Me</div>