JS Object this.method () ломается через jQuery
Я уверен, что есть простой ответ на это, но сегодня пятница, и я устал. :(
Не знаю, как это объяснить, поэтому я просто отправлю пример кода ...
Вот простой объект:
var Bob =
{ Stuff : ''
, init : function()
{
this.Stuff = arguments[0]
}
, doSomething : function()
{
console.log( this.Stuff );
}
}
И здесь это используется:
$j = jQuery.noConflict();
$j(document).ready( init );
function init()
{
Bob.init('hello');
Bob.doSomething();
$j('#MyButton').click( Bob.doSomething );
}
Все работает, кроме последней строки. Когда jQuery вызывает метод doSomething, он переопределяет this и останавливает его работу.
Пытаясь использовать простоStuff
тоже не работает
Итак, как я могу ссылаться на собственные свойства объекта таким образом, чтобы jQuery мог вызывать его, а также позволял объекту работать с вызывающим объектом jQuery?
то есть я хотел бы иметь возможность делать такие вещи:
doSomething : function()
{
console.log( <CurrentObject>.Stuff + $j(<CallerElement>).attr('id') );
}
(Где<CurrentObject>
а также<CallerElement>
заменены соответствующими именами.)