在学习JavaScript的过程中,我遇到了两种类型的函数。我尝试将它们按照我的理解列举如下。
function example(arg1, arg2) { //code to do stuff here }
并且
thing.method(function(arg) {
//code to do stuff here
});
我的想法是第一种情况是创建一个名为example的函数,它需要两个参数并且在花括号中执行一些操作。只要在范围内,我相信该函数可以被调用和使用(我认为这是正确的词吗?)。
在第二种情况下,我感到困惑。我的想法是我们有一个东西(数组、对象等),一个方法被调用(foreach、map等),然后我卡住了。有一个没有名称的函数吗?需要一个参数,并在花括号内执行一些操作。假设这个东西是一个数组,我们调用了foreach,那么函数括号内的内容将对每个元素进行操作?为什么我要使用这个而不是像第一个函数那样创建一个我可以直接调用的函数呢?
我为什么不能只说:
function example(arg) { //stuff }
thing.method(example(arg));
我可能对一些事情有所误解,能否有人为我澄清一下?
function example(arg) {}; thing.method(example);
第二个例子基本上是将函数作为thing方法的第一个参数发送。对于forEach示例,Array.forEach(function(){});
将在数组的每个元素上运行该函数,因为forEach基本上意味着“在我的数组中对每个元素使用传递给forEach的第一个参数”。 - Shilly