jquery.extend()与jquery.fn.extend()的区别

jquery.fn.extend与jquery.extend

jQuery为开发插件提拱了两个方法,分别是:

JavaScript代码

  • jQuery.fn.extend(object);

  • jQuery.extend(object);

jQuery.extend(object); 为扩展jQuery类本身.为类添加新的方法。

jQuery.fn.extend(object);给jQuery对象添加方法。

fn 是什么东西呢。查看jQuery代码,就不难发现。

JavaScript代码

  • jQuery.fn = jQuery.prototype = {

  •    init: function( selector, context ) {//…. 
  •    //……
  • };

原来 jQuery.fn = jQuery.prototype.对prototype肯定不会陌生啦。

虽然 javascript 没有明确的类的概念,但是用类来理解它,会更方便。

jQuery便是一个封装得非常好的类,比如我们用 语句 $(“#btn1″) 会生成一个 jQuery类的实例。

jQuery.extend(object); 为jQuery类添加添加类方法,可以理解为添加静态方法。如:

XML/HTML代码

  • $.extend({
  •   add:function(a,b){return a+b;}
  • });

便为 jQuery 添加一个为 add 的 “静态方法”,之后便可以在引入 jQuery 的地方,使用这个方法了,

JavaScript代码

  • $.add(3,4); //return 7

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

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

JavaScript代码

  • $.fn.extend({
  • alertWhileClick:function(){
  • $(this).click(function(){
  • alert($(this).val());

  • });
  • }
  • });
  • $(“#input1″).alertWhileClick(); //页面上为:<input id=”input1″
    type=”text”/>

$(“#input1″) 为一个jQuery实例,当它调用成员方法
alertWhileClick后,便实现了扩展,每次被点击时它会先弹出目前编辑里的内容。

真实的开发过程中,当然不会做这么小白的插件,事实上jQuery提拱了丰富的操作文档,事件,CSS
,Ajax、效果的方法,结合这些方法,便可以开发出更加 Niubility 的插件。

注意:

在这里还有一个特殊的地方,就是在函数开头的地方有jQuery.extend =
jQuery.fn.extend,而在程序的前面已经将jQuery.prototype赋值给jQuery.fn了,所以在后面的调用中会出现
jQuery.extend()和jQuery.fn.extend()的不同调用,这两个方法调用产生的结果也不一样,jQuery.extend()
的调用并不会把方法扩展到对象的实例上,引用它的方法也需要通过jQuery类来实现,如jQuery.init(),而
jQuery.fn.extend()的调用把方法扩展到了对象的prototype上,所以实例化一个jQuery对象的时候,它就具有了这些方法,这
是很重要的,在jQuery.js中到处体现这一点

时间: 2024-10-29 04:06:18

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.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)

JQuery添加扩展方法(理解$.extend(),与$.fn.extend()方法区别)

理解$.extend(),与$.fn.extend()方法区别 1.$.extend()方法 $.extend()方法在JQuery中有两个用法,第一次是扩展方法, 第二个方法是 jQuery.extend([deep], target, object1, [objectN]) 返回值:Object 把2个对象合并得到新的target,deep是可选的(递归合并) 合并 settings 和 options,修改并返回 settings. jQuery 代码: var settings = {

利用jQuery对插件进行扩展时,方法$.extend()、$.fn.extend()区别与联系

  利用JQ开发插件的方法: 1.jQuery.extend(); 2.jQuery.fn.extend(); 3.通过$.widget()应用jQuery UI的部件工厂方式创建. 由于第三种方式通常用于开发比较高级的jQuery的部件,开发难度较大,所以第一种和第二种方式用的更为广泛,下面主要对前两种方式的区别和联系以及使用的方法做一些介绍. 简要的说明一下: jQuery是一个封装的非常好的类,$(“#btn”)就相当于创建了一个jQuery的实例. 1.方法jQuery.fn .exte

jquery的$.extend和$.fn.extend作用及区别,兼它们的一些小细节

$.extend(obj);是为了扩展jquery本身,为类添加新的方法   $.fn.extend(obj);给JQUERY对象添加方法.如(1): $.extend({ add:function(a,b){ return a+b; } }) $.add(5,8) //return 13 注意没有,这边的调用直接调用,前面不用任何对象.直接$.+方法名 (2): $.fn.extend({ clickwhile:function(){ $(this).click(function(){ ale

jQuery.extend和jQuery.fn.extend的区别【转】

解释的很有意思,清晰明了又有趣,转来分享下,哈哈哈 jQuery.extend和jQuery.fn.extend的区别,其实从这两个办法本身也就可以看出来.很多地方说的也不详细.这里详细说说之间的区别. jQuery库. javascript 1 我们先把jQuery看成了一个类,这样好理解一些. jQuery.extend(),是扩展的jQuery这个类. 假设我们把jQuery这个类看成是人类,能吃饭能喝水能跑能跳,现在我们用jQuery.extend这个方法给这个类拓展一个能唱歌的技能.这

jQuery.fn.extend与jQuery.extend到底区别在哪?

正文: 其实说白了,从两个方法本身就能看出来端倪. 我们先把jQuery看成了一个类,这样好理解一些. jQuery.extend(),是扩展的jQuery这个类. 假设我们把jQuery这个类看成是人类,能吃饭能喝水能跑能跳,现在我们用jQuery.extend这个方法给这个类拓展一个能唱歌的技能.这样的话,不论是男人,女人,xx人.....等能继承这个技能(方法)了. 我们这样写: 1 2 3 4 5 jQuery.extend({     liu: function(){         

区别和详解:jQuery extend()和jQuery.fn.extend()

1.认识jQuery extend()和jQuery.fn.extend() jQuery的API手册中,extend方法挂载在jQuery和jQuery.fn两个不同对象上方法,但在jQuery内部代码实现的是相同的,只是功能却不太一样: 且看官方给出解释: jQuery.extend(): Merge the contents of two or more objects together into the first object.(把两个或者更多的对象合并到第一个当中): jQuery.