jQuery.extend
2015-10-18 22:45
549 查看
扩展对象的属性,代码如下:
jQuery.extend = jQuery.fn.extend = function(){ var options, name, src, copy, copyIsArray, clone, target = arguments[0] || {}, //处理arguments数组的下标 i = 1, length = arguments.length, deep = false; //如果第一个参数是布尔变量的话 if( typeof target === "boolean"){ deep = target; //总是确保target是对象 target = arguments[ i ] || {}; i++; } //非对象,非函数的情形 if( typeof target !== "object" && !jQuery.isFunction( target ) ){ target = {}; } //首参数布尔是,i = 2, 非布尔时, i = 1 //如果这时 i 与参数的长度相等。 if( i === length ){ target = this; i--; } for( ; i < length; i++ ){ // 仅处理非空,定义的值 if( (options = arguments[i] ) != null ){ // Extend the base object for( name in options ){ src = target[ name ]; copy = options[ name ]; //阻止无限循环 if( target === copy ){ continue; } if( deep && copy && ( jQuery.isPlainObject( copy ) || (copyIsArray = jQuery.isArray(copy ) ))) { if( copyIsArray ){ copyIsArray = false; //确保扩展对象是数组 clone = src && jQuery.isArray( src ) ? src : []; } else { //确保扩展对象是对象。 clone = src && jQuery.isPlainObject( src ) ? src : {}; } target[ name ] = jQuery.extend( deep, clone, copy ); //不要把未定义的值进行赋值 } else if( copy !== undefiend ){ target[ name ] = copy; } } } } return target; };
相关文章推荐
- jquery easyui -datagrid(悬浮,隐藏)
- 选择控件:select ,radio,checkbox之用jquery获取选中值的小结
- ***Jquery下Ajax与PHP数据交换
- 夺命雷公狗jquery---5可见选择器
- 夺命雷公狗jquery---4内容选择器
- 夺命雷公狗jquery---3普通选择器
- 夺命雷公狗jquery---2层级选择器
- asp.net 实现在线打印功能,jQuery打印插件PrintArea实现自动分页
- jQuery.core_02
- 夺命雷公狗jquery---1选择元素的3种方法
- jQuery dialog实现登陆,增删改操作
- JQuery中的小技巧,,,连载中。。。
- jQuery源码分析之offset,position,offsetParent方法以及源码中常见的cssHooks,swap代码
- Jquery iframe获取父窗口中的元素
- jQuery 文件上传插件:uploadify、swfupload
- 百度谷歌唯一解决方案--解决jQuery Validation插件 相同名称文本框只验证第一个
- jQuery源码分析之css方法
- JQuery图片轮换器原理
- jquery基本选择器
- jQuery实现打印输出字体