浏览器控制台环境:
一:
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?
慕沐林林
相关分类