jQuery.extend()与 jQuery.fn.extend()比较

    • 相同点
    • 不同点
      • jQueryextend
      • jQueryfnextend
    • 代码示例

相同点

两者都是用来扩展 jQuery,为 jQuery添加方法的,在开发jQuery 的相关插件时经常用到。


不同点

jQuery.extend()

为 jQuery 类本身添加类方法,即为静态方法;

调用添加的方法时只能通过 jQuery 本身来调用,jQuery 实例对象是无法调用新添加的方法的。比如 添加了 show 和 hide 方法,则调用方式为: jQuery.show()和 jQuery.hide().


jQuery.fn.extend()

看 jQuery 的源代码时会看到: jQuery.fn=jQuery.prototype,不难发现 jQuery.fn实际即为 jQuery 的原型。则调用jQuery.fn.extend()实际是在扩展jQuery.prototype对象的方法。由于 jQuery原型中的所有成员方法会被所有jQuery实例对象继承,则只要是 jQuery 实例对象就有添加的方法。

与 jQuery.extend()不同,jQuery.fn.extend()是为jQuery 原型添加方法,即为jQuery实例对象的成员方法。

调用方式也发生了改变,不用通过 jQuery 本身来调用添加的方法,所有 jQuery 实例对象都可以调用。


代码示例

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>jquery.extend()</title>
</head>
<body>
<div id="sample">extend</div>
</body>
<script src="jquery-1.11.0.js"></script>
<script>
    $(document).ready(function($){
        jQuery.extend({
            show:function(){
                alert("show message!");
            },
            hide: function () {
                alert("hide message!");
            }
        });
        jQuery.hide();
        jQuery.show();//使用jQuery本身调用新添加的方法
    })
    jQuery(function($){
        jQuery.fn.extend({
            show:function(){
                alert("show message!");
            },
            hide: function () {
                alert("hide message!");
            }
        });
        $("#sample").show();
        $("#sample").hide();//使用jQuery 实例对象调用新添加的方法
    })
</script>
</html>
时间: 2024-08-03 06:31:54

jQuery.extend()与 jQuery.fn.extend()比较的相关文章

$.extend(obj)和$.fn.extend(obj)的区别

$.extend(obj): 扩展jquery本身,添加方法: $.extend({ add:function(a,b){ return a+b; } }) $.add(5,8) //return 13 这里是直接调用,$.add(5,8);不加任何对象. $.fn.extend(obj): 对prototype进行扩展,为jquery类添加成员函数, jquery类的实例可以使用这个成员函数. $.fn.extend({ clickwhile:function(){ $(this).click

jQuery.fn.extend() 与 jQuery.extend()

bootstrap form-group和form-control 如何行内布局,如何水平布局. jQuery.fn如何扩展. jQuery插件 $.fn(object)与$.extend(object) jQuery提供了两个方法帮助开发插件 $.extend(object);扩展jQuery类本身: $.fn.extend(object);扩展jQuery对象: 一.$.fn $.fn 等于 $.prototype:这样就好理解了,就好比对String.porotype增加一个函数,然后所有

五.jQuery源码解析之jQuery.extend(),jQuery.fn.extend()

给jQuery做过扩展或者制作过jQuery插件的人这两个方法东西可能不陌生.jQuery.extend([deep],target,object1,,object2...[objectN]) jQuery.fn.extend([deep],target,object1,,object2...[objectN])这两个属性都是用于合并两个或多个对象的属性到target对象.deep是布尔值,表示是否进行深度合并,默认是false,不执行深度合并.通过这种方式可以在jQuery或jQuery.fn

理解jquery的$.extend()、$.fn和$.fn.extend()

jQuery.fn jQuery.fn = jQuery.prototype = { init: function( selector, context ) {//-. //-- }; 原来 jQuery.fn = jQuery.prototype.对prototype肯定不会陌生啦. 虽然 javascript 没有明确的类的概念,但是用类来理解它,会更方便. jQuery便是一个封装得非常好的类,比如我们用 语句 $("#btn1″) 会生成一个 jQuery类的实例. jQuery.ext

jquery插件之jquery.extend和jquery.fn.extend的区别

jquery.extend jquery.extend(),是拓展jquery这个类,即可以看作是jquery这个类本身的静态方法,例如: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/

jQuery插件开发的两种方法及$.fn.extend的详解

jQuery extend扩展开发: 1 类级别  类级别你可以理解为拓展jquery类,最明显的例子是$.ajax(...),相当于静态方法. 开发扩展其方法时使用$.extend方法,即jQuery.extend(object); $.extend({ add:function(a,b){return a+b;} , minus:function(a,b){return a-b;} }); 页面中调用: var i = $.add(3,2); var j = $.minus(3,2); 2

jquery的extend和fn.extend

jQuery为开发插件提拱了两个方法,分别是: jQuery.fn.extend(object); jQuery.extend(object); jQuery.extend(object); 为扩展jQuery类本身.为类添加新的方法. jQuery.fn.extend(object);给jQuery对象添加方法. fn 是什么东西呢.查看jQuery代码,就不难发现. jQuery.fn = jQuery.prototype = { init: function( selector, cont

jQuery.extend()方法和jQuery.fn.extend()方法

jQuery.extend()方法和jQuery.fn.extend()方法源码分析 这两个方法用的是相同的代码,一个用于给jQuery对象或者普通对象合并属性和方法一个是针对jQuery对象的实例,对于基本用法举几个例子: html代码如下: <!doctype html> <html> <head> <title></title> <script src='jquery-1.7.1.js'></script> <

jquery.fn.extend与jquery.extend用法与区别

关于jquery.fn.extend与jquery.extend用法与区别. jQuery为开发插件提拱了两个方法,分别是:  代码如下 复制代码 jQuery.fn.extend(object);  和   jQuery.extend(object); jQuery.extend(object); 为扩展jQuery类本身.为类添加新的方法. jQuery.fn.extend(object);给jQuery对象添加方法. fn 是什么东西呢.查看jQuery代码,就不难发现.  代码如下 复制

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

我们先把jQuery看成了一个类,这样好理解一些. jQuery.extend(),是扩展的jQuery这个类. 假设我们把jQuery这个类看成是人类,能吃饭能喝水能跑能跳,现在我们用jQuery.extend这个方法给这个类拓展一个能唱歌的技能.这样的话,不论是男人,女人,xx人.....等能继承这个技能(方法)了. 可以如下图这样写着: 然后:$.liu();这样就能打印出来”liu“这个字符串 代码在下面: 这说明啥啊,这说明.liu()变成了jQuery这个类本身的方法(object)