猿问

$(function() {}之间列举一系列的函数和变量是声明javascript变量和函数吗?

在一个页面源码<body>块底部看到

    <script>
        $(function() {
            sSwiperFun(); //幻灯片调取
            upSlideFun("#iQuestion"); //向上滚动互动
            scrollLoad(); //响应滚动加载课程图片
            $(".boutiqueCourse").click();//网校课程-精品课程
            huanyihuan();
            studentDynamic();//学生动态



            var uri = window.location.search;            var val = "msg";            
            var re = new RegExp("" + val + "=([^&?]*)", "ig");            
            var msg=((uri.match(re)) ? (uri.match(re)[0].substr(val.length + 1)) : null);            
            if(msg!=null && msg!='' && msg=='LimitLogin'){
                dialog('提示信息',"您的帐号在其他地点登录,请重新登录",1);
            }
        });    </script>

这是声明一系列的javascript函数和变量吗?

这些函数如果在引入的js文件里,不是可以直接用吗?为何还要额外声明?
另外,这里还有一个if语块,这表明 $(function() {}之间的东西不仅仅是声明,还包括要运行的语句?


小怪兽爱吃肉
浏览 460回答 1
1回答

叮当猫咪

虽然你试图区分“声明”跟“执行”,虽然这是js的基本功,但是在这里显然没必要,$(function() {}之间的东西会在页面加载完毕后执行,你把声明挪到代码块之外,把执行放到代码块之内,当然也是可以的,不过纯属增加代码的阅读难度,而且需要跨作用域读取声明,百害无一利,为什么要拆开?另外sSwiperFun();应该是一个叫sSwiper的组件,通常组件js文件只提供方法定义,不提供方法执行,因为它并不知道你需要在什么场合什么情况下执行。你说的“这些函数如果在引入的js文件里,不是可以直接用吗?为何还要额外声明?”并不是,sSwiperFun();是执行,不是声明。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答