如何在不使用匿名函数的情况下调用带参数的函数?

时间:2014-08-20 06:41:11

标签: javascript

我有以下问题,我想调用函数b,就像调用函数a一样。 这是一个例子:

$('#clickme').click(function () {
  console.log("abc");
});

function a() {
  console.log("a");
}
function b(b) {
  console.log(b);
}

$('#clickmea').click(a);

// how to call this method without using a anonymous function?
$('#clickmeb').click(b("ab"));

或者如果不使用匿名函数就无法调用b("ab")

JSBin exmaple

1 个答案:

答案 0 :(得分:1)

如果不使用匿名函数,则无法执行此操作:

$('#clickmeb').click(function(){b("ab")});

或包装函数:

function callback(){
    b("ab")
}
$('#clickmeb').click(callback);

无需从回调中返回匿名函数。这只是额外的代码,没有做任何有用的事情。

实际上,它不会传递传递给回调的变量:

function callback(){
    return function(){
        b("ab") // There will be no arguments passed to this anonymous function, unless you explicitly add them. 
    }
}