Javascript 如何在不使用匿名函数的情况下调用带参数的函数?
我有以下问题,我想调用函数Javascript 如何在不使用匿名函数的情况下调用带参数的函数?,javascript,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 fun
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”)
如果不使用匿名函数,则无法执行此操作:
$('#clickmeb').click(function(){b("ab")});
function callback(){
b("ab")
}
$('#clickmeb').click(callback);
或包装器函数:
$('#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.
}
}
如果“不使用匿名函数”,则无法执行此操作。您可以对函数b进行货币化,但为此,您需要一个函数(匿名或非匿名),该函数在调用时将所需参数传递给
b
。如果你使用一个库来实现这一点,在幕后也会发生同样的情况。或者你可以使用一个库来部分应用函数b
,最后它只是使用了一个匿名函数。@Marty:这不是一个有效的编辑。你详细说明你这样做的理由吗?我不认为有必要用一句话把另一个答案说成你自己的答案不好。所以,你自己处理事情,把这句话去掉。你本可以就此事发表评论的。我只想省去另一个答案所暗示的评论,@Marty。这是为了避免你看起来像一个糟糕的运动员,特别是说其他答案做了一些你不同意的事情。我想现在读起来不错。