• $.extend()和$.fn.extend()


    1、$.extend()

    1.1 定义

    jQuery.extend() 函数用于将一个或多个对象的内容合并到目标对象。

    1.2 语法

    $.extend(target, object1 , objectN... )
    $.extend(deep, target, object1 , objectN...)

    注意:

    1. 如果只为$.extend()指定了一个参数,则意味着参数target被省略。此时,target就是jQuery对象本身。通过这种方式,我们可以为全局对象jQuery添加新的函数。
    2. 如果多个对象具有相同的属性,则后者会覆盖前者的属性值。

    deep 可选。 Boolean类型 指示是否深度合并对象,默认为false。如果该值为true,且多个对象的某个同名属性也都是对象,则该"属性对象"的属性也将进行合并。
    target Object类型 目标对象,其他对象的成员属性将被附加到该对象上。
    object1   可选。 Object类型 第一个被合并的对象。
    objectN 可选。 Object类型 第N个被合并的对象。
    jQuery.extend({
        min: function(a, b) {
            return a < b ? a : b;
        },
        max: function(a, b) {
            return a > b ? a : b;
        }
    });
    jQuery.min(2, 3); //  2 
    jQuery.max(4, 5); //  5
    var object1 = {
        apple: 0,
        banana: { weight: 52, price: 100 },
        cherry: 97
    };
    var object2 = {
        banana: { price: 200 },
        durian: 100
    }; 
    // 将 object2 递归合并到 object1中
    $.extend( true, object1, object2 ); //=> {"apple":0,"banana":{"weight":52,"price":200},"cherry":97,"durian":100}

     2、jQuery.fn.extend()

    2.1 定义

    $.fn.extend() 函数为jQuery扩展一个或多个实例属性和方法(主要用于扩展方法)。

    2.2 语法

    $.fn.extend(object)

    object:Object类型 指定的对象,用来合并到jQuery的原型对象上。

    jQuery代码:

    jQuery.fn = jQuery.prototype = {
       init: function( selector, context ) {//….
    //……
    };

    即:jQuery.fn是jQuery的原型对象。

    所以,jQuery.fn.extend()是对jQuery.prototype进行的扩展,就是为jQuery类添加“成员函数”。jQuery类的实例可以使用这个“成员函数”。

    比如我们要开发一个插件,做一个特殊的编辑框,当它被点击时,便alert 当前编辑框里的内容。可以这么做:

    $.fn.extend({          
        alertWhileClick:function() {            
              $(this).click(function(){                 
                     alert($(this).val());           
               });           
         }       
    });       
    $("#input1").alertWhileClick();

    jQuery.fn.extend = jQuery.prototype.extend

    (function( $ ){
    $.fn.tooltip = function( options ) {
    };
    //等价于
    var tooltip = {
    function(options){
    }
    };
    $.fn.extend(tooltip) = $.prototype.extend(tooltip) = $.fn.tooltip
    })( jQuery );
  • 相关阅读:
    git 使用命令
    Mac上部署Jenkins,用git插件更新项目代码时报错的记录
    pycharm找不到本项目中的其他包或模块
    小米8线刷pixel experience全过程记录
    python环境清理
    怎么实现无遮罩屏蔽某些按钮的点击事件
    ios 上 WebCamTexture尺寸是16X16
    关于月份拆分
    关于const let的使用
    关于promise,const函数的使用
  • 原文地址:https://www.cnblogs.com/fydxx/p/6673726.html
Copyright © 2020-2023  润新知