Javascript 有人能解释一下这个值是如何通过参数传递的吗?

Javascript 有人能解释一下这个值是如何通过参数传递的吗?,javascript,function,Javascript,Function,有人能解释一下它是如何工作的吗? 调用函数时,它会记录“some value” 但是,如果我像这样调用函数,我会得到一个错误“pass不是函数” 像这样,错误“参数”没有定义 function a(pass){ pass("some value"); } console.log(a(argument)); 例1: function a(pass){ pass("some value"); } a(q=>{ console.log(q); }); 在本例中,您正在传递q=

有人能解释一下它是如何工作的吗? 调用函数时,它会记录“some value”

但是,如果我像这样调用函数,我会得到一个错误“pass不是函数”

像这样,错误“参数”没有定义

function a(pass){
  pass("some value");
}

console.log(a(argument));
例1:

function a(pass){
  pass("some value");
}

 a(q=>{
 console.log(q);
});
在本例中,您正在传递
q=>{console.log(q);}
到函数a。所以它调用它并在控制台中输出一些东西

例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:这里您已经传递了一个函数作为参数。函数执行函数a中提供的值的console.log

2:这里您没有提供任何功能。您正在调用
a()
a()
没有定义。只有
a(pass)
的定义。必须使用参数调用它。如果没有,就好像调用了
a(未定义)
。现在a尝试执行
未定义('some value')
,抛出错误


3:这里,什么是论点?删除
函数a(){}
代码,然后看到您正在尝试执行
a(参数)
,但是
参数
没有在任何地方定义,JS无法确定什么是参数。

上述代码中的函数
a
是一个高阶函数。因为它需要另一个函数作为参数

  • 在第一个示例中,第一个变量是一个函数,因此
    value
    将是一个函数。那么由于
    pass(“某个值”)将调用它

  • 在第二个示例中,您没有向函数
    a
    传递任何内容,因此
    pass
    将是
    未定义的。当您对任何不是函数的变量使用函数调用语法时,它将抛出错误

  • 在第三个示例中,您尝试将变量
    参数
    传递给函数
    a
    。但是
    参数
    不存在,因此它会抛出错误


  • 您需要一个pass函数,因为您在调用函数a()时正在调用它


    第一:您正在将arrow函数作为参数传递。第二:你没有传递任何东西,所以它不能是一个函数。第三:参数从未声明过。
    function a(pass){
      pass("some value");
    }
    console.log(a());
    
    function a(pass){
      pass("some value");
    }
    
    console.log(a(argument));
    
    function a(pass){
       pass("some value");
    }
    console.log(a()); 
    
    
    function pass(xyz){
       alert('hey');
    }