`
dreamoftch
  • 浏览: 498325 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

jquery.fn.extend与jquery.extend

阅读更多

例如:

//给jquery对象添加方法(类似于实例方法,通过jquery对象调用)
$.fn.extend({
	newFn:function(){
		alert('newFn');
	}
});
//给jquery添加方法(类似于静态方法,也就是类的方法,通过$.newFn2()调用)
$.extend({
	newFn2:function(){
		alert('newFn2');
	}
});

 

然后这样调用:

		$.newFn2();
		$(window).newFn();

 

 或者:

$.fn.newFn = function(){}; 也是给jquery对象添加方法

 

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中到处体现这一点

分享到:
评论

相关推荐

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

    在jQuery的API中,`jQuery.extend`和`jQuery.fn.extend`是两个重要的方法,它们用于合并对象属性,但作用范围和用途有所不同。本文将深入探讨这两个方法的差异,并通过实例解析它们的工作原理。 首先,`jQuery....

    浅谈jquery.fn.extend与jquery.extend区别

    jquery.fn.extend(object);给jQuery对象添加方法。 $.extend({  add:function(a,b){return a+b;} }); //$.add(3,4); //return 7 jQuery添加一个为 add的“静态方法”,之后便可以在引入 jQuery 的地方,使用这...

    jquery $.fn.extend

    `$.fn.extend`是jQuery库中的一个核心方法,主要用于扩展jQuery对象的方法集合。这个方法允许开发者自定义jQuery的函数,从而实现对DOM元素的操作或添加新的功能。在jQuery中,`$.fn`实际上是`$.prototype`的一个...

    开发插件的两个方法jquery.fn.extend与jquery.extend

    jQuery为开发插件提拱了两个方法,分别是: JavaScript代码 代码如下: jQuery.fn.extend(object); jQuery.extend(object); jQuery.extend(object); 为扩展jQuery类本身.为类添加新的方法。 jQuery.fn.extend(object)...

    jQuery.extend 与 jQuery.fn.extend的用法及区别实例分析

    主要介绍了jQuery.extend 与 jQuery.fn.extend的用法及区别,结合实例形式分析了jQuery.extend与jQuery.fn.extend的功能、使用方法及区别,需要的朋友可以参考下

    jQuery.fn和jQuery.prototype区别介绍

    这意味着,`jQuery.extend` 会影响到 `jQuery` 函数本身,而 `jQuery.fn.extend` 会影响到所有通过 `jQuery` 构造函数创建的对象实例。 举个例子,如果你使用 `jQuery.extend` 添加了一个名为 `myMethod` 的方法,...

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

    在jQuery中,`$.extend()`、`.fn`(即`jQuery.fn`)和`.fn.extend()`是开发者用于增强其功能和创建插件的关键部分。下面我们将详细探讨这三个概念。 1. `$.extend()` `$.extend()`方法用于合并一个或多个对象的属性...

    jQuery.extend()、jQuery.fn.extend()扩展方法示例详解

    jQuery自定义了jQuery.extend()和jQuery.fn.extend()方法.其中jQuery.extend()方法能够创建全局函数或者选择器,而jQuery.fn.extend()方法能够创建jQuery对象方法. 例如: 代码如下: jQuery.extend({ showName : ...

    Jquery实现$.fn.extend和$.extend函数_.docx

    实现方式与`$.fn.extend`类似,但`this`的上下文不同: ```javascript $.extend = function (obj) { if (isObj(obj)) { for (var i in obj) { this[i] = obj[i]; } } } ``` 在`$.extend`中,`this`代表`$`...

    jquery.json-2.3.min.js和jquery.json-2.3.js

    jquery.json-2.3.min.js和jquery.json-2.3.js jQuery为开发插件提拱了两个方法,分别是:jQuery.extend(object); 为扩展jQuery类本身 jQuery.fn.extend(object);给jQuery对象添加方法。

    jQuery学习笔记之jQuery.extend(),jQuery.fn.extend()分析

    在jQuery库中,`jQuery.extend()` 和 `jQuery.fn.extend()` 是两种非常重要的方法,它们用于扩展和合并对象的属性。这两个方法在开发自定义插件或进行jQuery对象的定制时非常常见。 `jQuery.extend()` 用于合并一个...

    jQuery.js中继承的实现.pdf

    在jQuery中,`jQuery.extend()`与`jQuery.fn.extend()`的使用有所不同。`jQuery.fn`是jQuery对象的原型,因此`jQuery.fn.extend()`会将方法扩展到jQuery对象的实例上,使得实例可以直接调用这些方法。而`jQuery....

    Jquery实现$.fn.extend和$.extend函数

    与 `$.fn.extend` 不同,`$.extend` 不会修改jQuery的核心原型,而是直接操作指定的对象。 在提供的代码示例中,作者创建了一个简单的jQuery模拟库 `_$_`,并为它实现了 `$.fn.extend` 和 `$.extend` 方法。`_$.fn`...

    jQuery中$.fn的用法示例介绍

    $.fn是指jquery的命名空间,加上fn上的方法及属性,会对jquery实例每一个有效。... jQuery.fn.extend(object);给jQuery对象添加方法。 fn是什么东西呢。查看jQuery代码,就不难发现。 代码如下: jQuery.fn =

Global site tag (gtag.js) - Google Analytics