为了账号安全,请及时绑定邮箱和手机立即绑定

js函数声明和执行的问题

js函数声明和执行的问题

陪伴而非守候 2018-09-05 15:13:44
浏览器控制台环境:一:    var a = function(num){         b(num);     }     a(1);    var b = function(num){        console.log(num)     }二:    function a(num){        console.log(num)     }     a(1);    function b(num){        console.log(num)     }记得在高程看过,function定义的函数会前置,而var定义的函数只是声明会前置。那么代码二无疑是可以打印出1的;但是代码一也能打印出1,我不明白的是当a调用的时候,b函数还未声明,此时为何可以打印出1呢?另外:var c = (function(){    var init = function(){      a(1);     };    var a= function(num){         b(num);     };    var b =function(num){        console.log(num);     };    return{        init: init     }; })();     c.init();init在a之前声明,为何能调用a?
查看完整描述

1 回答

?
慕沐林林

TA贡献2016条经验 获得超9个赞

  1. 第一段代码绝不可能打印出1

  2. 第二段代码你是直接返回了init,那时候它里面还没运行,到最后c.init()的时候才运行了,然后才运行里面的a(1);,这当然是没有问题的。


查看完整回答
反对 回复 2018-10-14
  • 1 回答
  • 0 关注
  • 437 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信