jQuery.extend方法和開發中變數的複用

來源:互聯網
上載者:User

標籤:style   class   blog   code   http   tar   

最近在用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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.