我确信对此有一个简单的答案,但现在是星期五下午,我很累。:(
不知道如何解释它,所以我会继续发布示例代码......
这是一个简单的对象:
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>
用适当的名称替换。)