将额外变量传递给侦听器函数

时间:2015-10-07 14:33:04

标签: javascript function variables listener

我有这段代码

function main(b)
{
    b.on('func1', onFunc1);
    b.on('func2', onFunc2);
}

function onFunc1(a)
{
  console.log(a); //prints (for example) 2
  console.log(b); //is this possible?
}

所以我的问题是,有什么方法可以传递给函数' onFunc1'名为' b'?

的变量

2 个答案:

答案 0 :(得分:1)

您可以执行以下操作:

function main(b) {
    b.on('func1', function(){ onFunc1(b); });
    b.on('func2', function(){ onFunc2(b); });
}

function onFunc1(a) {
  console.log(a); //prints (for example) 2
  console.log(b); //is this possible?
}

这样做,匿名函数将被调用,并将调用您的处理程序传递您希望它传递的函数。

答案 1 :(得分:-1)

正如文档中所写,您可以插入包含数据的对象作为调用的第二个字段:

function myHandler( event ) {
  alert( event.data.foo );
}
$( "p" ).on( "click", { foo: "bar" }, myHandler );

有关详细信息,请参阅jQuery on documentation