传递方法到功能

时间:2010-05-21 19:19:13

标签: javascript jquery methods

在Javascript中我试图将一个类成员传递给一个jQuery函数,但不知何故,该函数中的'this'对象搞砸了。这是代码:

function Hints() 
    {
    this.markProduct = function() { alert('hi'); };
    this.selectProduct = function() { this.markProduct(); }; 
    }

当我使用此代码调用此代码时:

oHints = new Hints();
oHints.selectProduct();

它工作得很好,'selectProduct'函数中的'this'对象引用了Hints对象。 但是当我尝试这个时:

oHints = new Hints();
$('#prodquery').keydown(oHints.selectProduct);

'selectProduct'函数中的'this'对象引用了触发keydown事件的html对象。

有没有人有线索?我很困惑:/

1 个答案:

答案 0 :(得分:8)

请改为:

$('#prodquery').keydown(function() { oHints.selectProduct() });

然后read this解释this在不同情境中的运作方式。