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
jQuery.extend方法和开发中变量的复用的更多相关文章
- jQuery extend方法使用及实现
一.jQuery extend方法介绍 jQuery的API手册中,extend方法挂载在jQuery和jQuery.fn两个不同对象上方法,但在jQuery内部代码实现的是相同的,只是功能却不太一样 ...
- jQuery extend 方法使用 (转)
方法介绍 jQuery 的 API 手册中,extend 方法挂载在 jQuery 和 jQuery.fn 两个不同的对象上,但在 jQuery 内部代码实现的是相同的,只是功能各不相同. 先看看官方 ...
- jQuery extend方法详解
先说个概念的东西: jQuery为开发插件提拱了两个方法,分别是: $.fn.extend(item):为每一个实例添加一个实例方法item.($("#btn1") 会生成一个 j ...
- 对jQuery.extend()方法的分析
jQuery.extend方法是我们常用的方法,也是jQuery源码中的基础方法.它的主要作用是:将一个或多个“源对象”合并到一个“目标对象”中,并返回目标对象.它主要有三种表现形式: a.jQuer ...
- jQuery extend方法介绍
jQuery为开发插件提拱了两个方法,分别是: jQuery.fn.extend(object); jQuery.extend(object); jQuery.extend(object);为扩展jQ ...
- jquery.extend方法
jquery.extend()用来扩展jquery中方法,实现插件. 1.jQuery.extend函数详细用法! 扩展jQuery静态方法. 1$.extend({ 2test:function() ...
- jQuery 源码解析二:jQuery.fn.extend=jQuery.extend 方法探究
终于动笔开始 jQuery 源码解析第二篇,写文章还真是有难度,要把自已懂的表述清楚,要让别人听懂真的不是一见易事. 在 jQuery 源码解析一:jQuery 类库整体架构设计解析 一文,大致描述了 ...
- jQuery.extend()方法
定义和用法 jQuery.extend()函数用于将一个或多个对象的内容合并到目标对象. 注意: 1. 如果只为$.extend()指定了一个参数,则意味着参数target被省略.此时,target就 ...
- jQuery.extend()、jQuery.fn.extend()扩展方法示例详解
jQuery自定义了jQuery.extend()和jQuery.fn.extend()方法.其中jQuery.extend()方法能够创建全局函数或者选择器,而jQuery.fn.extend()方 ...
随机推荐
- HTML+CSS 整站 步骤
文件夹管理: CSS JS img font html 根据设计图,划分区块 ,即页面布局 重置样式 ;padding:0;} 写main.css 注意:1 距离尽量使用偶数,避免奇数 2 在使用定 ...
- (转)META http-equiv="refresh" 实现网页自动跳转
***.html自动跳转文件代码如下: <HTML> <HEAD><META http-equiv="Refresh" content="5 ...
- python基础知识九
sys模块 sys模块包含系统对应的功能.我们已经学习了sys.argv列表,它包含命令行参数. 命令行参数 例14.1 使用sys.argv #!/usr/bin/python # Filename ...
- android studio 无法在可视化页面预览布局文件
Rendering Problems the following classes could not be found:android.support.v7.internal.widget.Actio ...
- asp.net 操作INI文件的读写,读写操作本地ini配置文件
using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Secu ...
- cocos2dx 实现不一样的ScrollView
原来在公司被迫加班加点赶工,用lua实现的版本:http://www.cnblogs.com/mmc1206x/p/4146911.html 后来因我个人的需要, 用C++实现了一个版本. 蓦然回首, ...
- PHP 内存不足
今天编写数据库备份类时,在运行的过程中,出现了内存不足的问题,提示:Fatal error: Allowed memory size of 25165824 bytes exhausted (trie ...
- Angularjs中编写指令模版
angular.module('moduleName', []).directive( 'namespaceDirectiveName', [ function() { return { restri ...
- ava下static关键字用法详解
Java下static关键字用法详解 本文章介绍了java下static关键字的用法,大部分内容摘自原作者,在此学习并分享给大家. Static关键字可以修饰什么? 从以下测试可以看出, static ...
- 解决GDB输出Qt内置类型的显示问题
自从GDB 7.0之后,就加入了Pretty-Printer的这个概念.简单理解就是他可以让你用Python写一串脚本,然后让gdb去读取这串脚本后,可以自由的输出由你想自己定义的格式.我们直接举个简 ...