Jquery:使用这个内部类内部函数,作为处理程序

时间:2014-09-29 15:47:48

标签: javascript jquery this

假设我们有以下代码:

HTML:

<input type="button" id="button" value="Say hello">

使用Javascript:

function test ()
{
    this.message = "hello";
    this.on_change = function (){
        alert(this.message);
    }

    this.on_change();
}

$(document).ready(function() {
    var my_object = new test();
    $('#button').click(my_object.on_change);
});

my_object必须打印&#34;你好&#34; 2例:

  1. 创建实例(正常)时
  2. 点击按钮&#34;打招呼&#34; (没有工作)
  3. 在第二种情况下,它打印&#34; Undefined&#34;,因为this指的是&#34;按钮&#34;对象,而不是test类的实例。

    jsfiddle

2 个答案:

答案 0 :(得分:0)

尝试记住某些变量this的上下文:

var self = this;
this.message = "hello";
...

jsFiddle

答案 1 :(得分:0)

看起来就像你应该为你的处理程序创建一个函数的情况之一。 :)

$(document).ready(function() {
    var my_object = new test();
    $('#button').click(function(){
        my_object.on_change();
    });
});