2010-05-21 122 views
4

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

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

当我打电话使用此验证码:

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

它工作得很好,并在“selectProduct”功能“这个”对象是指提示对象。 但当我尝试这个办法:

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

在“selectProduct”功能“这个”对象是指射出的keydown事件的HTML对象。

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

+0

只是要挑剔... JS没有类,它有原型。 – nico 2010-05-21 19:23:03

回答

8

而是执行此操作:

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

然后read this在不同的情况下如何this作品的解释。

+0

感谢您的答案,并感谢您的链接! :) – acidtv 2010-05-21 19:38:36