有人可以解释一下该参数如何传递值吗?

时间:2019-06-28 16:07:51

标签: javascript function

有人可以解释一下它是如何工作的吗? 调用该函数时,它会记录“某个值”

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));

4 个答案:

答案 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是高阶函数。因为它需要另一个函数作为参数。

  1. 在第一个示例中,第一个变量是一个函数,因此value将是一个函数。所以由于 pass("some value");将被调用。

  2. 在第二个示例中,您不向函数a传递任何内容,因此pass将是undefined。当您对不是函数的任何变量使用函数调用语法时,将引发错误。

  3. 在第三个示例中,您尝试将变量argument传递给函数a。但是argument不存在,因此会引发错误。

答案 3 :(得分:0)

您需要一个传递函数,因为您在调用函数a()时正在调用它。

function a(pass){
   pass("some value");
}
console.log(a()); 


function pass(xyz){
   alert('hey');
}