zoukankan      html  css  js  c++  java
  • Jquery插件写法及extentd函数

    JQuery插件写法

    JQuery插件又分为类扩展方法和对象扩展方法两种,类插件是定义在JQuery命令空间的全局函数,直接通过.ajax();对象插件是扩展JQuery对象的函数,通过选择的具体对象调用,类似$(dom).html()。

    JQuery类扩展方法

    直接给$增加方法

    1. $.foo=function(){
    2. console.log('foo');
    3. }
    4. $.bar=function(){
    5. console.log('bar');
    6. }

    或者给属性增加命名空间

    1. $.plugin={
    2. foo:function(){},
    3. bar:function(){}
    4. }

    通过$.extend(object)

    1. $.extend({
    2. foo:function(){},
    3. bar:function(){}
    4. })

    JQuery对象扩展方法

    一般JQuery对象级别方法扩展多写在立即执行函数中,避免别名冲突,另外注意函数返回当前this,以方便链式操作。

    直接给.fn增加方法

    1. (function($){
    2. $.fn.foo=function(){}
    3. })(JQuery);

    通过调用$.fn.extend()

    1. (function($){
    2. $.fn.extend({foo:function(){}})
    3. })

    JQuery extend函数用法

    jQuery.extend(object);

    jQuery.extend( target [, object1 ] [, objectN ] )

    合并object1, objectN到target对象,如果只有一个参数,则该target对象会被合并到jQuery对象中。

    jQuery.extend( [deep ], target, object1 [, objectN ] )

    深度复制合并对象,第一个参数是boolean类型的true时,将object1, objectN深度复制后合并到target中;关于深度复制,是将除null, undefined,window对象,dom对象,通过继承创建的对象外的其它对象克隆后保存到target中;所排除的对象,一是考虑性能,二是考虑复杂度(例如dom及window对象,如果克隆复制,消耗过大,而通过继承实现的对象,复杂程度不可预知,因此也不进行深度复制);
    深度与非深度复制区别是,深度复制的对象中如果有复杂属性值(如数组、函数、json对象等),那将会递归属性值的复制,合并后的对象修改属性值不影响原对象。

    jQuery.fn.extend(object);

    jQuery.fn = jQuery.prototype 即指向jQuery对象的原型链,对其它进行的扩展,作用在jQuery对象上面;一般用此方法来扩展jQuery的对象插件。
    详细参考:jQuery extend方法使用及实现





  • 相关阅读:
    622 CircularQueue C#
    x盒子
    Cygwin、MinG、MSys区别与联系(转)
    Spring集成MyBatis完整示例
    mybatis学习 (五) POJO的映射文件
    mybatis学习(四)——config全局配置文件解析
    json字段为null时输出空字符串
    mybatis学习(一)不使用 XML 构建 SqlSessionFactory
    数据库 ----jdbc连接池的弊端
    Spring @Import注解 —— 导入资源
  • 原文地址:https://www.cnblogs.com/doit8791/p/5427619.html
Copyright © 2011-2022 走看看