Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 没有最后括号的闭包是什么?_Javascript - Fatal编程技术网

Javascript 没有最后括号的闭包是什么?

Javascript 没有最后括号的闭包是什么?,javascript,Javascript,闭包和查妈所说的闭包有什么区别 我明白 var x = (function(){})(); x得到一个闭包。这里没什么特别的 var y = (function(arg1){ const _hello = ()=>{ return' world'} return { hello:_hello } }); 什么是y?查妈叫它什么 var x = y(arg) 现在

闭包和查妈所说的闭包有什么区别

我明白

var x = (function(){})();  
x得到一个闭包。这里没什么特别的

var y = (function(arg1){
            const _hello = ()=>{ return' world'}
           return {
                 hello:_hello
             }
       });
什么是y?查妈叫它什么

var x = y(arg)
现在x是什么?还是结案

函数{}将执行该函数,请尝试函数{console.log0}

并尝试functionitem{console.logitem}0

y将是一个函数


x={hello:=>{return'world'}

闭包是一个概念,您可以从子范围访问父范围中的变量。这与IIFEs无关。至于回答你的问题,y是什么?它是一个函数。当您将代码放入其中时,它会创建一个表达式并执行它。所以你的y将保存这个表达式的输出,也就是匿名函数。x通常不是一个闭包,它是函数在第一种情况下返回的,未定义的;在第二种情况下,一个对象-在其hello属性中包含闭包。y是一个闭包,因为JavaScript将任何函数视为一个闭包,即使是不包含任何内容。唯一的区别是它们的回报。第一个将返回函数的结果。send将返回一个名为hello的函数属性的对象,该对象具有arg1的闭包。@Keith Second缺少调用括号。。。所以这只是一个例子expression@Keith:var y=。。。不是生活,只是生活。