为什么这两个函数只能运行其中一个,而两个放一起就不能运行了??? //函数1 window.onload=function(){ function Time(){alert(1)} Time() }//函数2 (function(){ var mei=new Date(); alert(mei);})();
1 回答
李晓健
TA贡献1036条经验 获得超461个赞
window.onload=function(){ function Time(){alert(1)} Time() }; //这里加一个分号就好了 //函数2 (function(){ var mei=new Date(); alert(mei); })();
原因是在浏览器里会自动忽略注释换行和空格
你的代码去掉注释换行和空格就成了
window.onload=function(){ function Time(){alert(1)} Time() }(function(){ var mei=new Date(); alert(mei); })();
第四行就是一个整体,最后一个括号就是多余的,所以你的第二个方法就不会执行,因为他是作为一个参数传到第一个方法里。
你可以这样证明第二个方法是作为一个参数传到第一个方法里
window.onload=function(method2){ function Time(){alert(1)} Time(); method2(); //这里调用一次传进来的方法 }(function(){ var mei=new Date(); alert(mei); });
希望我已经说明白了,这里理解起来确实有点困难。
添加回答
举报
0/150
提交
取消