javascript - 新手求解函数调用的问题
怪我咯
怪我咯 2017-04-11 10:38:25
[JavaScript讨论组]
var a=function(){
    return function(){
      alert("Hello World!");
    }
}
a();
为什么无法执行?
怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(5)
大家讲道理

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、同楼上同学一致。

PHP中文网

a() 只是执行了a函数,得到了内部返回的函数,但是没有执行得到的。。。

阿神

内部返回的是一个函数,需要再加()执行。。。

ringa_lee

并不是没有执行,是你没有看到执行结果。如果你把代码粘贴到控制台,就发现结果是这个:

function(){
      alert("Hello World!");
    }
    

像其他人说的,a()();就能看到结果了。

另外,当你写了一段函数,发现执行后并没有看到逾期的结果,又没有报错。那么这时候建议你把代码粘贴到浏览器控制台执行下,控制台会显示出结果是什么,比对一下就知道差在哪里了。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号