有人可以解释一下它是如何工作的吗? 调用该函数时,它会记录“某个值”
function a(pass){
pass("some value");
}
a(q=>{
console.log(q);
});
但是,如果我这样调用函数,则会收到错误消息:“ pass不是函数”
function a(pass){
pass("some value");
}
console.log(a());
并且这样,错误“参数”未定义。
function a(pass){
pass("some value");
}
console.log(a(argument));
答案 0 :(得分:1)
示例1:
function a(pass){
pass("some value");
}
a(q=>{
console.log(q);
});
在这种情况下,您正在传递q=>{console.log(q);}
通过功能因此它将调用它并在控制台中输出一些内容。
示例2:
function a(pass){
pass("some value");
}
console.log(a());
在这种情况下,您不传递任何参数到函数a。因此,该函数尝试调用一个未定义的参数,该参数根据定义不是函数。
示例3:
function a(pass){
pass("some value");
}
console.log(a(argument));
在这种情况下,您要传递一个名为argument
的未定义变量来函数a,该变量会导致您收到错误消息。我希望这会有所帮助。
答案 1 :(得分:0)
欢迎。
1:在这里,您已经传递了函数作为参数。 功能执行功能 a 中提供的值的console.log。
2:在这里您未提供任何功能。您正在呼叫a()
。 a()
没有定义。 a(pass)
只有一个定义。您必须使用参数来调用它。如果不这样做,就好像您呼叫了a(undefined)
。现在尝试执行undefined('some value')
并抛出错误。
3:这里的论点是什么?删除function a() { }
代码,看看您正在尝试执行a(argument)
,但是argument
并未在任何地方定义,并且JS无法确定参数是什么。
答案 2 :(得分:0)
以上代码中的函数a
是高阶函数。因为它需要另一个函数作为参数。
在第一个示例中,第一个变量是一个函数,因此value
将是一个函数。所以由于
pass("some value");
将被调用。
在第二个示例中,您不向函数a
传递任何内容,因此pass
将是undefined
。当您对不是函数的任何变量使用函数调用语法时,将引发错误。
在第三个示例中,您尝试将变量argument
传递给函数a
。但是argument
不存在,因此会引发错误。
答案 3 :(得分:0)
您需要一个传递函数,因为您在调用函数a()时正在调用它。
function a(pass){
pass("some value");
}
console.log(a());
function pass(xyz){
alert('hey');
}