2010-05-21 5 views
4

В Javascript Я пытаюсь передать член класса функции jQuery, но каким-то образом этот «объект» в этой функции запутался. Это код:Метод передачи для функции

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» относится к HTML объект, который уволил KeyDown событие.

У кого-нибудь есть ключ? Я озадачен:/

+0

Просто быть разборчивым ... У JS нет классов, у него есть прототипы. – nico

ответ

8

ли это вместо:

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

А потом read this для объяснения, как this работ в различных контекстах.

+0

Спасибо за ответ и спасибо за ссылку! :) – acidtv

Смежные вопросы