• jQuery.extend方法和开发中变量的复用


    最近在用commonJS规范进行客户端开发,遇到如下问题:

    一般一个模块内部可能会定义一系列变量或一系列相关变量,比如写了一个颜色选择弹框模块大概会有如下变量定义

    var settings = {
            //设置它是否绝对定位
            position: {
                //定位可以是绝对定位,可以是相对定位(需要有target),也可以是默认定位
                type: "none",
                top: 30,
                left: 30,
                //表示相对于目标的定位
                target: "",
                zindex: 0
            },
            //单击选择颜色结束是否关闭
            isClose: true,
            //表示颜色块单击(返回一个数组,表示选中的颜色和隐藏颜色)
            onClick: function (colors) {
    
            },
            onClose: function () {
    
            }
        };

    这些参数不经内部用到,而且需要提供调用初始化。你的实现代码可能是这样:

    //修改默认配置
        var setup = function (_settings) {
            if (_settings) {
                if (_settings.onClick && $.isFunction(_settings.onClick)) {
                    settings.onClick = _settings.onClick;
                }
                if (_settings.position) {
                    if (_settings.position.type)
                        settings.position.type = _settings.position.type;
                    if (_settings.position.top)
                        settings.position.top = _settings.position.top;
                    if (_settings.position.left)
                        settings.position.left = _settings.position.left;
                    if (_settings.position.target)
                        settings.position.target = _settings.position.target;
                    if (_settings.position.zindex)
                        settings.position.zindex = _settings.position.zindex;
                }
                if (_settings.isClose) {
                    settings.isClose = _settings.isClose;
                }
            }
        };

    但事实上我们可以利用jQuery的extend方法大大简化代码

    以上代码可以简化为

    //修改默认配置
        var setup = function (_settings) {
           $.extend(settings, _settings || {});//浅复制
        $.extend(true,settiings,_settings||{}); };

    具体jQuery.extend用法可以参考

    http://www.cnblogs.com/RascallySnake/archive/2010/05/07/1729563.html

  • 相关阅读:
    Android中查找一个Layout中指定的子控件
    常用代码
    数据库连接池配置
    分享一个电子书网站
    怎么快速入手一个项目在没有人指导的情况下
    压测如何观测jvm,就是使用jmx来实现jvm监控
    工具类
    APP开发和web开发的区别
    网站切流量
    互联网主题分析
  • 原文地址:https://www.cnblogs.com/jerfer/p/3796511.html
Copyright © 2020-2023  润新知