day 32 jQuery插件

1. jQuery.extend() 和jQuery.fn.extend()

官方给出的解释:

  • jQuery.extend(): Merge the contents of two or more objects together into the first object.(把两个或者更多的对象合并到第一个文档中);
  • jQuery.fn.extend():Merge the contents of an object onto the jQuery prototype to provide new jQuery instance methods.(把对象挂载到jQuery的prototype属性,来扩展一个新的jQuery实例方法)

(1) jQuery.extend()

方法1:extend()

  • 为$添加方法

这个扩展也就是所谓的静态方法, 只跟这个 类 本身有关。跟你具体的实例化对象是没关系的。

(回顾: 类方法是通过类名来直接调用,如Array.from Math.floor())


$.extend({
    //需要添加的插件(函数)
});

举例:

    $.extend({
        // 需要添加的插件(函数)
        fun: function(){
            console.log("haha");
        }
    });
    //这里$符号模拟的就是类名,等价于类方法
    $.fun();//haha

案例: 给$添加一个计算器插件

方法2:添加一个新的全局函数

    $.fun1 = function(){
        console.log('xixi');
    }
    $.fun1();//xixi

方法3:使用命名空间

    $.myNameSpace = {
        fun:function(){
            console.log("heihei");
        }
    }
    $.myNameSpace.fun();//heihei

(2) jQuery.fn.extend()

  • 为jQueryDom对象添加方法
  • 大部分插件都是用jQuery.fn.extend()


    
        
        
    
    
        

案例: jQuery版弹出框

(注意:jQuery不支持ES6的语法)

(3) 两者区别总结

  • 两者调用方式不同:

    • jQuery.extend(),一般由传入的全局函数来调用,主要是用来拓展全局函数,如$.init(),$.ajax();
    • jQuery.fn.extend(),一般由具体的实例对象来调用,可以用来拓展选择器,例如$.fn.each();
  • 两者的主要功能作用不同:

    • jQuery.extend(object); 为扩展jQuery类本身,为自身添加新的方法。
    • jQuery.fn.extend(object); 给jQuery对象添加方法

2. 引入第三方插件

使用第三方插件的精髓:求Demo

jquery之cookie操作:

  • 首先: jQuery cookie插件下载

1) 添加一个会话cookie

$.cookie('the_cookie', 'the_value');
//例如:
$.cookie("name","xiaoming");

2)创建一个cookie并设置有效时间为 7天

这里指明了cookie有效时间,所创建的cookie被称为“持久cookie(persistent cookie)”。注意单位是:天;

$.cookie('the_cookie', 'the_value', { expires: 7 });
//例如:
$.cookie("age",18,{expires: 7});

3)读取cookie

$.cookie('the_cookie');
//例如:
$.cookie("name");

4)删除cookie

$.cookie('the_cookie', null, -1);   //通过传递null作为cookie的值即可
//例如:
$.cookie("age",null,-1);

你可能感兴趣的:(jquery)