代码片段学习(一)

来源:互联网 发布:tensorflow whl 编辑:程序博客网 时间:2024/06/05 04:33

描述

这是《单页面应用》一段描写点击事件的代码。今天手敲了一遍,觉得写得自己写的绝对写不成这个样子。所以想的仔细分析一下,学习一下。

代码

var spa = (function( $ ) {            var                 configMap = {                    extended_height : 434,                    extended_title : "click to retract",                    retracted_height : 16,                    retracted_title : 'click to extend',                    template_html : '<div class="spa-slider"><\/div>'                },                $chatSlider,                toggleSlider,onClickSlider,initModule;            toggleSlider = function () {                var slider_height = $chatSlider.height();                if (slider_height == configMap.retracted_height ) {                    $chatSlider                        .animate({height:configMap.extended_height})                        .attr( 'title' ,configMap.extended_title);                    return true;                }                else if (slider_height == configMap.extended_height) {                    $chatSlider                        .animate({height:configMap.retracted_height})                        .attr( 'title' ,configMap.retracted_height);                    return true;                }                return false;            };            onClickSlider = function ( event ) {                toggleSlider();                return false;            };            initModule = function ( $container ) {                $container.html( configMap.template_html );                $chatSlider = $container.find( '.spa-slider' );                $chatSlider                    .attr( 'title' , configMap.retracted_title )                    .click( onClickSlider );                return true;            }            return { initModule : initModule };    }( jQuery ))    jQuery(document).ready(        function () { spa.initModule(jQuery('#spa')); }    );

分析代码

首先从整洁上来说,function () { } 空格加的特别多,看起来不拥挤

从规范上说:
变量前面定义,定义的方法也很帅气。
采用模块的写法。只返回来一个方法,提供给你调用。
在初始化的方法中进行dom的绑定。
并且每个方法都返回 return 不管是false 和 true 。(如果是我,根本不返回,就算想返回也不知道是返回false 还是 true)。
jQuery的写法也很特别 看起来特别漂亮,而且清楚!
在前面定义变量的好处是 你后面几乎只用提示就行。都不用再去找参数之类的。但是有个问题就是定义那么多名字,起名字就是一个比较头疼的事。作者采用下划线的方式也是我最常用的方式。

对模块 和 闭包的理解 也是这样写的一个必须的条件!