Javascript代码书写规范

(function(){})();

如何理解:

这代表匿名函数,主要利用函数内的变量作用域,避免产生整体变量,影响整体的页面环境,增加代码的兼容性,(function(){})是一个标准的函数定义,但是没有赋值给任何变量,因此是匿名函数,因为没有名字,所以不能跟普通函数一样,随时随地的被调用,所以在定义完成之后就马上调用他,后面的括号()是运行它的意思。

闭包:

什么是闭包,所谓闭包,就是定义在函数内部的函数,在javascript中,只有函数内部的函数可以读取局部变量。

$: 当我们要将一个jQuery对象赋值给一个变量时,必须在这个变量之前加上“$”,说明它是一个对象。

将所有函数都放在(function(){});当中,就是说当前浏览器将dom树都绘制完毕之后,我再去执行这个方法体里面的代码。

案例:

$(function(){
    // header
    (function () {
        // 点击导航栏的Select Region,显示模态框
        var $selbtn = $(".topnav .t_wrapper .t_w_left .t_w_l_selregion");
        var $selmodal = $("#selregion");
        var $selmodalbox = $("#selregion .s_box");
        var $selclose = $("#selregion .s_box .s_b_header .s_b_h_close");
        $selbtn.click(function(){
            $selmodal.stop(true).show();
            $selmodalbox.stop(true).slideDown(300);
        });
        $selclose.click(function(){
            $selmodalbox.stop(true).slideUp(300);
            setTimeout(function(){
                $selmodal.stop(true).hide();
            },300);
        });
        $selmodal.click(function(e){
            var flag = $(e.target).is(".s_box,.s_box *");
            if(!flag){
                $selmodalbox.stop(true).slideUp(300);
                setTimeout(function(){
                    $selmodal.stop(true).hide();
                },300);
            }
        });
    })();
});

你可能感兴趣的:(JavaScript)