首页 > 其他分享 >jQuery中的 $.extend() 和 $.fn.extend()

jQuery中的 $.extend() 和 $.fn.extend()

时间:2023-02-03 14:37:38浏览次数:41  
标签:jQuery obj1 obj extend score fn

jQuery中的 $.extend() 和 $.fn.extend()

ANGWH

于 2020-05-24 06:39:59 发布
注意:$.extend是为jQuery类添加添加类方法,用$.调用(类似$.ajax),$.fn.extend则是为jQuery对象添加方法(实例方法),用DOM元素调用
文章标签: jquery
版权
$.extend() 和 $.fn.extend() 这两个方法都是给jQuery进行拓展,开发jQuery插件时经常使用
在jQuery源码中,你会看到关于这两个方法的代码的第一行是这样的

jQuery.extend = jQuery.fn.extend = function(){}
1
可以看出两个方法共用的是同一个函数体,所有的操作都是一样的,只不过两个方法使用的对象不同。

$.extend是为jQuery类添加添加类方法,可以理解为添加静态方法(工具方法)

    $.extend({
        min: function(a, b) { return a < b ? a : b; },
        max: function(a, b) { return a > b ? a : b; },
        add: function(a, b) { return a + b }
    });
    // 调用
    $.min(2,3); //  2 
    $.max(4,5); //  5
    $.add(5,5); //  10
1

$.extend() 也提供了深度拷贝的方法

    var obj = {
        name:'哈哈', 
        score:80
    };
    var obj1 = {
        name:'嘻嘻',
        success:'A',
        score:{
            Chinese:100,
            math:90
        }
    }
    $.extend(true, obj, obj1);
    
    console.log("obj" , obj);
    console.log("obj1" , obj1);

    obj.score.Chinese = 10;

    console.log(obj.score.Chinese);   // 10
    console.log(obj1.score.Chinese);  // 100
1

后者的内容克隆到前者,属性重名的直接覆盖,修改属性值互不干扰。


$.fn.extend则是为jQuery对象添加方法(实例方法)

查看jQuery源码也可以发现

jQuery.fn = jQuery.prototype = {}
1
可以明显的看到就是为jQuery的原型添加新的属性和方法。

    $.fn.extend({
        toWidth: function() {
            this.width(function(index,width){
                return width + 10
            }).css({
                backgroundColor : 'green'
            });
        }
    });
    // 使用新创建的.check() 方法
    $(".box").click(function(){
        $(this).toWidth();
    })
1

$.fn.extend()也有克隆,浅层克隆和深层克隆都有,互不影响。

浅层克隆

    $.fn.extend( obj, obj1);
    obj.score.Chinese = 10;
    obj1.score.math= 50;
1

深层克隆

    $.fn.extend(true, obj, obj1);
    obj.score.Chinese = 10;
    obj1.score.math = 50;
1
————————————————
版权声明:本文为CSDN博主「ANGWH」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ANGWH/article/details/106307307

 

标签:jQuery,obj1,obj,extend,score,fn
From: https://www.cnblogs.com/webSnow/p/17089165.html

相关文章

  • jQuery-动画 jQuery-遍历
    jQuery-动画 三种方式显示和隐藏元素1.默认显示和隐藏方式1.show([speed,[easing],[fn]])1.参数:1.speed:动画的速度。......
  • JQuery案例和插件机制
    案例-广告显示和隐藏需求:1.当页面加载完,3秒后,自动显示广告2.广告显示5秒后,自动消失分析:1.使用定时器完成,setTimeout(执行一次定时器)2.分析......
  • jQuery-案例-隔行换色 全选全不选 qq表情选择 下拉列表选中条目录左右移动
    jQuery-案例-隔行换色 <!DOCTYPEhtml><html><head><metacharset="UTF-8"><title>隔行换色</title><scriptsrc="../../js/jquery-......
  • jQuery的事件处理
    jQuery的事件处理文档加载事件.ready(fn)$(document).ready(function(){//编写代码});与window.onload方法的区别执行时间:window.onload方法是在页面中所有的DOM元素(包括......
  • jQuery_6_动画效果
     使得页面具有良好的交互性。 零、动画设置1、时间slow、normal、fast、毫秒数。2、暂停暂停指定元素正在执行的动画。//暂停id为div_1的标签正在运行......
  • JQuery事件绑定
    事件绑定1.jquery标准的绑定方式js对象.事件方法(回调函数);<!DOCTYPEhtml><html><head><metacharset="UTF-8"><title></title><scriptsrc......
  • jQuery_5_操作事件
    通过方法对事件进行操作。  一、给某事件追加监听函数在js中操作事件时,不能给一个事件创建多个监听函数,后者会覆盖前者,而jQuery中操作事件为追加模式。1、追加事件......
  • jQuery_4_操作文档结构
    通过jQuery操作文档结构。  一、内部插入在指定元素内部添加内容,或移动页面内其它元素到指定元素内。1、append追加内容到内部(尾部)。//获取元素对象varobj......
  • JQuery遍历
    遍历js的遍历方式for(初始化值;循环结束条件;步长)<!DOCTYPEhtml><html><head><metacharset="UTF-8"><title></title><scriptsrc="../js/jquery-3......
  • JQuery动画
    动画1.三种方式显示和隐藏元素1.默认显示和隐藏方式1.show([speed],[easing],[fn]]):显示1.参数:1.speed:动画的速度。三个......