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
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。