Javascript 解释此功能是如何工作的

Javascript 解释此功能是如何工作的,javascript,Javascript,a=()=>{ 返回((b)=>警报(b))(“你好”); }; a()它是一个函数,在内部调用一个立即调用的函数表达式(IIFE)——即在同一行中声明和调用的函数 返回不做任何操作(它从未定义的警报()返回返回值;没有任何内容在侦听返回。) 外部函数和IIFE都使用了所谓的箭头函数——没有自己的this上下文的短语法函数 整个过程可以简化为: let a = () => alert('hello'); a(); (b)=>警报(b)是 ((b)=>alert(b))我们的arrow函数

a=()=>{
返回((b)=>警报(b))(“你好”);
};

a()它是一个函数,在内部调用一个立即调用的函数表达式(IIFE)——即在同一行中声明和调用的函数

返回不做任何操作(它从未定义的
警报()
返回返回值;没有任何内容在侦听返回。)

外部函数和IIFE都使用了所谓的箭头函数——没有自己的
this
上下文的短语法函数

整个过程可以简化为:

let a = () => alert('hello');
a();
(b)=>警报(b)

((b)=>alert(b))
我们的arrow函数实际上是一个,我们需要将它括在括号中,以便在适当的位置调用它

((b)=>alert(b))(“hello”)
调用函数时,我们将
“hello”
作为参数传递给函数

()=>{return…}
是另一个,除了这次,我们不调用函数,而是存储在名为
a
的变量中,以便以后调用它

a()
调用先前存储的函数,该函数依次调用
(b)=>alert(b)
,参数为
“hello”
,该参数依次调用
alert(“hello”)

((b) => alert(b))("hello");
首先。((b)=>alert(b))是一个函数,它接受参数b并返回alert(b)。这里的(“hello”)是发送给这个函数的参数

苏,关于这整个表情。我可以提出另一种形式,这是可行的

let a = () => {
    ((b) => alert(b)) ("hi")
}
a()
在这里,你甚至不必有回报。警报无论如何都不会返回任何内容。因此,基本上,在这个块中,您定义了一个不带参数的函数a,并执行我已经解释过的代码。

箭头函数:

生命:

let a = () => {
  return ((b) => alert(b))("hello");
};

a();
a
是一个命名函数
let a=

a
是一个箭头函数
()=>{}

a
是一个无参数箭头函数,因为括号是空的
()

((b)=>警报(b))(“你好”)
是一个立即调用的函数,因为它位于
()

(b)=>alert(b)
是一个带有参数
b
的箭头函数,用于警告
b

((b)=>警报(b))(“你好”)
获取值
“hello”
,因为
(“hello”)
使用该值作为
b

考虑到所有这些,我们来看一些例子:

a=()=>{
返回((b)=>警报(b))(“你好”);
};
a();
//相同的净效应
((b)=>警报(b))(“你好”);
//相同的净效应
警惕(“hellosa”);
(函数(x){alert(x)})(“你好,我”)
// https://developer.mozilla.org/en-US/docs/Glossary/IIFE
设af=function(){
返回((b)=>警报(b))(“helloaf”);
};
af();
设na=函数(nb){
返回((b)=>警报(b))(nb);
};
na(“hellob”);
设nab=函数(nbb){
返回函数(bi){alert(bi);}(nbb);
};
nab(“hellobb”);
函数nab2(nbb){
返回函数(bi){alert(bi);}(nbb);
};
nab2(“hello2”);
/*两种功能*/
函数sayHi(bi){
警报(bi);
}
函数nab3(nbbn){
返回sayHi(nbbn);
};
nab3(“hello3”)
((b)=>alert(b))
-这是一个函数表达式,然后使用
()
立即调用,并将“hello”作为参数传递给函数表达式,该函数表达式被分配给函数表达式内的参数
b
。或者简单地说是
alert('hello')