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')代码>