欢迎!从2017年开始,将慢慢的不在xmind上写总结了,全部转到博客中!这里将不再随便写写,将继承在xmind的精神,继续前行!!!

函数 进阶学习之一:JS中(function(){xxx})(); 这种写法引发的血案!!

一问题的由来:

见过一段代码

for(var i=0;i<submit.length;i++){
        (function (i) {//注意
            submit.eq(i).on("click",function (e) {
                var title_id = $(".qk-title").eq(i).attr('id');
                var answer_cont = $(".checkbox").eq(i).children(".cur").html();
                if(!answer_cont){
                    alert("选择项不能为空!");
                }else{
                    internalVoteSubmit(title_id,answer_cont);
                    if(bfSubmit){
                        $('.submit').eq(i).fadeOut();
                    }
                    e.preventDefault();
                    swiperParent.swipeNext();
                }
            })
        })(i)//注意
    }

代码中用(function(){})()包裹了一段代码,联想到各种jquery插件也用到这种格式(比如 weui的js),虽然自己在仿写插件的时候也用这种方式!并未做深入的学习起原理,

这次就将深入学习。

首先进入视野的是 自执行匿名函数

通过自执行匿名函数,有认识到其他的几个内容

1.IIFE 的原理

2.函数和函数表达式的区别(之前未引起重视)

3.其声明提升至当前作用域的顶部

posted @ 2017-01-26 11:19  拐进web的奋斗者  阅读(299)  评论(0编辑  收藏  举报