传递方法到功能

aci*_*dtv 4 javascript methods jquery

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

function Hints() 
    {
    this.markProduct = function() { alert('hi'); };
    this.selectProduct = function() { this.markProduct(); }; 
    }
Run Code Online (Sandbox Code Playgroud)

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

oHints = new Hints();
oHints.selectProduct();
Run Code Online (Sandbox Code Playgroud)

它工作正常,'selectProduct'函数中的'this'对象引用Hints对象.但是,当我尝试这个:

oHints = new Hints();
$('#prodquery').keydown(oHints.selectProduct);
Run Code Online (Sandbox Code Playgroud)

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

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

Jus*_*son 8

改为:

$('#prodquery').keydown(function() { oHints.selectProduct() });
Run Code Online (Sandbox Code Playgroud)

然后阅读本文以解释this在不同环境中如何工作.