Javascript 如何';功能1(数据、功能2)和#x27;工作

Javascript 如何';功能1(数据、功能2)和#x27;工作,javascript,Javascript,这些代码是如何工作的 function output(a) { console.log( "The function filter return " + a + "!"); } x = function(data, fun) { a = data; fun(a); }; theInput = " TEXT FROM INPUT "; x(theInput, output);//The function filter return TEXT FROM INPUT ! 我是my

这些代码是如何工作的

function output(a) {
  console.log( "The function filter return " + a + "!");
}

x = function(data, fun) {
  a = data;
  fun(a);
};

theInput = " TEXT FROM INPUT ";

x(theInput, output);//The function filter return  TEXT FROM INPUT !
我是mysels写的,效果很好。但我不明白“函数1(数据,函数2)”是如何运行的

什么是
x

它是一个变量,包含对具有两个参数的函数的引用,
data
fun

你在这里干什么

通过传递字符串和函数调用此函数。是的,JavaScript中的函数可以被视为任何其他对象。实际上,它们也是对象。因此,它们可以存储到变量中(存储对它们的引用),也可以作为参数传递给另一个函数等

存储在x中的函数体内部发生了什么

最初,将
数据
分配给名为
a
的变量,然后将其作为参数传递给函数
输出
。然后调用存储在
output
中的函数

如果从这个代码片段中可以看出一点,那就是您将一个函数作为参数传递给了另一个函数。这在JavaScript中非常重要,它与JavaScript中函数的性质有关

根据:

在JavaScript中,函数是一级对象,即 对象,可以像其他对象一样进行操作和传递 对象具体来说,它们是函数对象


阅读关于JavaScript闭包的内容。这里没有关于闭包的内容,函数
output
被传递到
x
,该函数从
x
调用,阅读1。函数表达式2。函数:第一类对象3。回调函数jepp,这里没有闭包!
x(theInput, output);