扫码关注官方订阅号
var a=function(){ return function(){ alert("Hello World!"); } } a(); 为什么无法执行?
走同样的路,发现不同的人生
a()();才对吧
a()();
a()返回的是一个匿名函数
a()
不能直接执行
加一个打印就很清楚了。
var a=function(){ return function(){ alert("Hello World!"); } }; console.log(a()); //这样调用只是将里层函数返回给了a
解决方案:1、
var a=function(){ return function(){ alert("Hello World!"); } }(); //此处加上立即调用 即a此时就是内层函数 a(); //这里再调,就是内层函数体内的逻辑了
2、同楼上同学一致。
a() 只是执行了a函数,得到了内部返回的函数,但是没有执行得到的。。。
内部返回的是一个函数,需要再加()执行。。。
并不是没有执行,是你没有看到执行结果。如果你把代码粘贴到控制台,就发现结果是这个:
function(){ alert("Hello World!"); }
像其他人说的,a()();就能看到结果了。
另外,当你写了一段函数,发现执行后并没有看到逾期的结果,又没有报错。那么这时候建议你把代码粘贴到浏览器控制台执行下,控制台会显示出结果是什么,比对一下就知道差在哪里了。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
a()();才对吧a()返回的是一个匿名函数不能直接执行
加一个打印就很清楚了。
解决方案:
1、
2、同楼上同学一致。
a() 只是执行了a函数,得到了内部返回的函数,但是没有执行得到的。。。
内部返回的是一个函数,需要再加()执行。。。
并不是没有执行,是你没有看到执行结果。如果你把代码粘贴到控制台,就发现结果是这个:
像其他人说的,a()();就能看到结果了。
另外,当你写了一段函数,发现执行后并没有看到逾期的结果,又没有报错。那么这时候建议你把代码粘贴到浏览器控制台执行下,控制台会显示出结果是什么,比对一下就知道差在哪里了。