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

为什么这两个函数只能运行其中一个,而两个放一起就不能运行了???

为什么这两个函数只能运行其中一个,而两个放一起就不能运行了???

快乐崇拜tager 2016-08-04 12:06:17
为什么这两个函数只能运行其中一个,而两个放一起就不能运行了??? //函数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);
});

希望我已经说明白了,这里理解起来确实有点困难。

查看完整回答
反对 回复 2016-08-04
  • 1 回答
  • 1 关注
  • 1721 浏览

添加回答

举报

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