如何将参数传递给事件处理函数并仍然使用'this'引用?

时间:2012-02-08 22:14:54

标签: javascript

我有一个情况(使用Raphael库),我有这个:

rect.click(doSomething);

doSomething()内,我可以获得边界框大小:

var boxSize = this.getBBox();

问题是,如果我想将参数传递给doSomething怎么办?如果我这样做,那么this引用会因某种原因而中断。我如何传递参数并仍然使用this

1 个答案:

答案 0 :(得分:4)

您可以将侦听器包装在另一个函数中,并使用.call()使用给定参数调用该函数:

var foo = 123, bar = 'blabla';
rect.click(function(event) {
    return doSomething.call(this, event, foo, bar);
});