传递一个函数的语法是什么,它是另一个函数的参数来执行它?

时间:2016-04-09 16:03:05

标签: javascript function syntax

我有一个var a=10; var b=20; var c=a+b*20; $("textarea").append( $( "<h2>-z-z-</h2>" ) ); // doesn't work $('textarea').val('the result ' + c); // works but I want the content after the tag, not in the textarea $("h3").append( $( "<h2>-x-x-</h2>" ) ); // works on h3 element 功能:

foo

var foo = function(input) { console.log(input) } 函数:

bar

我想将var bar = function(fn, condition) { if (condition) { fn(); } } 作为foo的参数传递,如:bar

问题是必须调用bar(foo, true);来执行参数。如果我使用foobar(foo('param'), false);将在foo开始之前执行并检查条件。

JavaScript语法是否有更好的解决方案?

我知道我可以将bar功能修改为以下内容,但我不想修改bar实现:

bar

1 个答案:

答案 0 :(得分:2)

您可以使用以下格式:bar(function() { foo(param); },false),除非您需要foo函数中的元信息,例如名称,在这种情况下您需要使用function(fn, paramArray, condition)...方法

请注意,使用新的Javascript功能(例如Arrow functions),您可以使用bar(()=>foo(param),false)编写相同的内容,但并非所有浏览器都支持此语法。