我正在学习JS,并且阅读到可以将函数作为参数传递给其他变量。在以下代码中,当我将匿名函数作为参数传递时,它给出了"Uncaught SyntaxError: Unexpected token function"
var x;
function myfun(x, function(x) {
console.log("Value of x is: "+ x );
});
myfun(2,4);
我对了解错误背后的逻辑更感兴趣。我究竟做错了什么?
谢谢
bt
最佳答案
在您的代码中,您似乎试图声明两个函数,一个名为myfun
,带有两个参数,另一个是未命名(匿名)函数,带有一个参数。您的代码中似乎有两个语法错误:(1)函数myfun
没有函数主体,并且(2)您在myfun
的参数列表中声明一个函数。
让我们首先声明两个函数(给第二个函数一个名称并给myfun
一个函数体)来解决这个问题:
function myfun(x, functionToBeCalled) {
functionToBeCalled(x);
}
function functionToBePassed(x) {
console.log("Value of x is: "+ x );
}
现在,我们可以调用函数
myfun
并将两个参数传递给它,一个是x
的值,另一个是要在myfun
中调用的函数-函数functionToBePassed
:myfun(2, functionToBePassed);
如果要匿名传递第二个函数,请在调用函数
myfun
时声明此函数,而不是在声明myfun
时声明://declare myfun
function myfun(x, functionToBeCalled) {
functionToBeCalled(x);
}
//call myfun and pass a function as an argument
myfun(2, function(x) {
console.log("Value of x is: "+ x );
});