`

extend:common plugin development pattern.

 
阅读更多
jQuery.extend( target, [ object1 ], [ objectN ] ) 返回: Object
描述: 合并两个或更多的对象的内容汇集成到第一个对象。

version added: 1.0jQuery.extend( target, [ object1 ], [ objectN ] )
target 一个对象,如果附加的对象被传递给这个方法将那么它将接收新的属性,如果它是唯一的参数将扩展jQuery的命名空间。

object1一个对象,它包含额外的属性合并到第一个参数

objectN包含额外的属性合并到第一个参数

version added: 1.1.4jQuery.extend( [ deep ], target, object1, [ objectN ] )
deep如果是true,合并成为递归(又叫做深拷贝)。

target对象扩展。这将接收新的属性。

object1一个对象,它包含额外的属性合并到第一个参数

objectN包含额外的属性合并到第一个参数

当我们提供两个或多个对象给$.extend(),对象的所有属性都添加到目标对象。

如果只有一个参数提供给$.extend(),这意味着目标参数被省略。在这种情况下,jQuery对象本身被默认为目标。这样,我们可以在jQuery的命名空间下添加新的功能。这可用于插件作者希望添加新的方法到jQuery。

请记住,目标对象(第一个参数)将被修改,也将通过$.extend()返回。然而,如果我们想保留原对象,我们可以通过传递一个空对象作为目标:

var object = $.extend({}, object1, object2);通过$.extend()合并执行默认不是递归的;如果第一个对象的属性本身是一个对象或数组,这将是完全用第二个对象相同的key重写一个属性。这些值是不合并。这可以看到在下面的例子通过检查香蕉的值。然而,true为第一个函数参数,对象将被递归合并。

未定义的属性不会被复制。然而,从对象原型的继承属性将被复制。

Examples:
Example: Merge two objects, modifying the first.

var object1 = {
  apple: 0,
  banana: {weight: 52, price: 100},
  cherry: 97
};
var object2 = {
  banana: {price: 200},
  durian: 100
};

$.extend(object1, object2);
Result:
object1 === {apple: 0, banana: {price: 200}, cherry: 97, durian: 100}Example: Merge two objects recursively, modifying the first.

var object1 = {
  apple: 0,
  banana: {weight: 52, price: 100},
  cherry: 97
};
var object2 = {
  banana: {price: 200},
  lime: 100
};

$.extend(true, object1, object2);
Result:
object1 === {apple: 0, banana: {weight: 52, price: 200}, cherry: 97, lime: 100}Example: Merge settings and options, modifying settings.
var settings = { validate: false, limit: 5, name: "foo" };
var options = { validate: true, name: "bar" };
jQuery.extend(settings, options);Result:
settings == { validate: true, limit: 5, name: "bar" }Example: Merge defaults and options, without modifying the defaults. This is a common plugin development pattern.
var empty = {}
var defaults = { validate: false, limit: 5, name: "foo" };
var options = { validate: true, name: "bar" };
var settings = $.extend(empty, defaults, options);Result:
settings == { validate: true, limit: 5, name: "bar" }
empty == { validate: true, limit: 5, name: "bar" }
分享到:
评论

相关推荐

    com.guo.android_extend:android-extend:1.0.6

    标题 "com.guo.android_extend:android-extend:1.0.6" 提示我们这是一个 Android 库项目,属于开发者郭某的扩展库,版本号为 1.0.6。通常,这种格式表示的是 Maven 或 Gradle 的依赖坐标,用于在构建 Android 项目时...

    com.guo.android_extend android-extend1.0.6.zip

    implementation 'com.guo.android_extend:android-extend:1.0.6'失败,用这个替代就好了 implementation 'com.guo.android_extend:android-extend:1.0.6'失败,用这个替代就好了

    【1积分】android-extend-1.0.6.aar

    使用方式:把资源放到libs下,在gradle app 中添加 低版本:compile files('libs/android-extend-1.0.6.aar') 高版本:implementation files('libs/android-extend-1.0.6.aar')

    android-extend-1.0.5.aar依赖库com.guo.android_extend

    虹软ArcSoft 人脸识别AndroidDemo中有一个Lib通过公网始终无法下载,替换进去就好了。 依赖替换为 implementation files('libs/android-extend-1.0.5.aar')。 依赖库com.guo.android_extend

    jQuery.extend和jQuery.fn.extend的区别

    在jQuery的API中,`jQuery.extend`和`jQuery.fn.extend`是两个重要的方法,它们用于合并对象属性,但作用范围和用途有所不同。本文将深入探讨这两个方法的差异,并通过实例解析它们的工作原理。 首先,`jQuery....

    centos7 本地yum源配置

    #additional packages that extend functionality of existing packages [centosplus] name=$releasever - Plus - 163.com baseurl=http://mirrors.163.com/centos/7/centosplus/$basearch/ gpgcheck=1 enabled=0 ...

    AoutCAD2004常用的快捷键.pdf

    44. ex (extend):延伸对象到其他对象的边界。 45. tr (trim):修剪对象。 46. f (fillet):倒圆角。 47. cha (chamfer):倒斜角。 48. br (break):打断对象。 49. e (erase):删除对象。 50. ctrl+S:保存当前图形...

    simpler-extend:用于继承和子类化的简单“扩展”助手

    用法将其分配给您的基类的.extend : function Shape ( ) { ... }Shape . extend = require ( 'simpler-extend' ) ; 然后使用它来子类化: var Circle = Shape . extend ( { getArea : function ( ) { return this ....

    python作业.docx

    2. `extend()` 方法:在列表尾部添加另一个列表中的多个元素。 示例:`my_list.extend(['element1', 'element2'])` 3. `insert()` 方法:在列表中添加新元素,可以在指定位置添加一个元素。 示例:`my_list.insert(0...

    js 文件压缩器

    例如:配置“extend_edit.min.js.minifier”内容: extend_cal.js extend_caltree.js extend_ref.js extend_search.js extend_tuple.js extend_batch.js extend_label.js extend_edit.js 3. 执行Minifier.exe命令,...

    国外某地气温数据(extend:2011-2016年).zip

    背景描述 国外某地天气温度数据集 数据说明 数据表中 year,moth,day,week分别表示的具体的时间 temp_2:前天的最高温度值 temp_1:昨天的最高温度值 average:在历史中,每年这一天的平均最高温度值 ...

    Playmaker v1.9.0.p20.zip

    Interface with scripts or extend Playmaker with Custom Actions. :: NEW Nested Prefab support in 2018.3+ :: NEW Integrated UI Actions and Events. :: NEW Auto-Convert Variables in Actions. :: NEW ...

    Python语言基础:列表的常用方法.pptx

    本篇将详细讲解Python列表的几个常用方法,包括`append()`、`extend()`、`insert()`、`pop()`以及`sort()`。 1. `append()`方法: `append()`方法用于在列表的末尾添加一个元素。它与使用`+`操作符连接两个列表...

    RIA应用开发:8-jQuery插件概述.ppt

    - 使用`jQuery.extend()`:`jQuery.extend({myFunction: function() {...}})` - **封装对象方法**: - 形式一:`jQuery.fn.myMethod = function() {...}` - 形式二:`jQuery.fn.extend({myMethod: function() {....

    EXTJS4.2 MVC环境搭建并显示数据

    extend: 'Ext.data.Model', fields: ['id', 'name', 'email'] }); ``` 3. **创建Store**:在`app/store`目录下创建存储类,用于管理和加载数据。例如,创建`Users.js`文件,定义用户存储: ```javascript Ext...

    ExtJS登入验证码的实现

    extend: 'Ext.data.Model', fields: ['code'] }); ``` 2. **创建Store**: Store是Model实例的容器,用于管理数据。我们需要一个Store来存储生成的验证码: ```javascript Ext.define('CaptchaStore', { extend:...

    Playmaker 官方最新1.9.0 p4

    Interface with scripts or extend Playmaker with Custom Actio ns. :: NEW Integrated UI Actions and Events. :: NEW Auto-Convert Variables in Actions. :: NEW Performance improvements. :: NEW Category ...

    underscore.extend与$.extend实例比较分析

    在JavaScript开发中,`underscore` 和 `jQuery` 都提供了扩展对象的功能,即 `_.extend()` 和 `$.extend()` 方法。这两个方法允许开发者合并一个或多个对象的属性到目标对象中,实现对象间的属性拷贝。本文将深入...

    jQuery.1.4.Plugin.Development.Beginner's.Guide.pdf

    var settings = $.extend({}, options); return this.each(function() { var $this = $(this); $this.data("myPlugin", settings); }); }; ``` ### 五、常见问题及解决策略 #### 5.1 插件不生效 - **检查...

Global site tag (gtag.js) - Google Analytics