Web开发肯定要使用第三方插件,对于一个炫丽的效果都忍不住想看看对方是如何实现的,刚下载了一个仿京东商品鼠标经过时局部放大的插件。看了两眼JQuery源码,看看就感觉一头雾水。JQuery本来自己学的就半吊子,再加智商又不惊人。。。当开发插件的时候难免会使用$.fn与$.extend。原来看到这个时候非常抵触,今天再次看到的时候简单的查了查外加一个Demo实验了一下。以下为几分钟补脑后的小记,如有错误请大神急时指出以免误导他人。

进入正题:

1、$.fn.【UserDefinitionName】(PS:UserDefinitionName为自定义的方法名称)

$.fn是指JQuery的命名空间,加上fn上的方法及属性,会对JQuery实例每一个都有效。例如:

<script type="text/javascript">

$.fn.sayhello = function () { alert('提示:$.fn.sayhello'); };

$(document).ready(function () {

$("#btn").sayhello();     // btn为Button的Id

});

</script>

注:我对$.fn的理解是相当于给一个Object对象添加了一个扩展方法(PS:个人观点)

2、$.extend

其实他和$.fn是非常相似的,详细做Web的人大部分都用过$.ajax、$.get等方法,而这个$.extend就是用来添加自定义”静态”方法的。例如:

<script type="text/javascript">

$.fn.sayhello = function () { alert('提示:$.fn.sayhello'); };

$.extend({

sayChinese: function () { alert('提示:世界、你好!');},

sayEnglish: function () { alert('Message:Hello World !');}

});

$(document).ready(function () {

$("#btn").sayhello();

$.sayChinese();

$.sayEnglish();

});

</script>

3、$.fn.extend

如果你要问我这个与$.fn.【UserDefinitionName】有什么区别,那我只能说“我母鸡耶。。。”!我测试了一下他与$.fn.【UserDefinitionName】都能实现Object对象的扩展方法。原因我不清楚。不过还是贴出这个的代码吧

<script type="text/javascript">

$.fn.sayhello = function () { alert('提示:$.fn.sayhello'); };

$.extend({

sayChinese: function () { alert('提示:世界、你好!');},

sayEnglish: function () { alert('Message:Hello World !');}

});

$.fn.extend({

objectMethod: function () { alert('提示:$.fn.extend'); }

});

$(document).ready(function () {

$("#btn").sayhello();

$.sayChinese();

$.sayEnglish();

$("#btn").objectMethod();

});

</script>

4、$.【UserDefintionName】

这个与$.extend如出一辙,如果硬要让我说他俩不同点那只能说写法不通了

<script type="text/javascript">

$.fn.sayhello = function () { alert('提示:$.fn.sayhello'); };

$.extend({

sayChinese: function () { alert('提示:世界、你好!');},

sayEnglish: function () { alert('Message:Hello World !');}

});

$.fn.extend({

objectMethod: function () { alert('提示:$.fn.extend'); }

});

$.CodeMonkey = function () { alert('CodeMonkey是神!');};

$(document).ready(function () {

$("#btn").sayhello();

$.sayChinese();

$.sayEnglish();

$("#btn").objectMethod();

$.CodeMonkey();

});

</script>

【JavaScript】JQuery中$.fn、$.extend、$.fn.extend的更多相关文章

  1. jquery中方法扩展 ($.fn & $.extend) 学习笔记

    A.$.fn 1.$.fn.method() 函数为jQuery对象扩展一个属性和方法(主要用于扩展方法) :method 为自定义方法名 ($.fn 等效 $.prototype) $.fn.bor ...

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

    jQuery.fn如何扩展. jQuery插件 $.fn(object)与$.extend(object) jQuery提供了两个方法帮助开发插件 $.extend(object);扩展jQuery类 ...

  3. 理解jQuery的$.extend与$.fn.extend

    https://www.cnblogs.com/xuxiuyu/p/5989743.html 上面这篇博客总结的很棒!!,以下对自己的认识做一个总结 <!DOCTYPE html> < ...

  4. jQuery中,$.extend,$obj.extend和$.fn.extend三者的区别

    jQuery中,$.extend,$obj.extend和$.fn.extend三者的区别 现在做的一个项目,所使用的框架是基于jQuery扩展的,于是平时学了一下jQuery,了解到了它的扩展函数: ...

  5. WHAT?【 $.fn.extend() 】vs【 $.extend() 】

    废话不多说,干货来了,转自http://www.cnblogs.com/hellman/p/4349777.html (function($){ $.fn.extend({ test:function ...

  6. jQuery为开发插件提拱了两个方法:jQuery.fn.extend(); jQuery.extend();

    jQuery为开发插件提拱了两个方法,分别是: jQuery.fn.extend(); jQuery.extend(); jQuery.fn jQuery.fn = jQuery.prototype ...

  7. Jquery自定义插件之$.extend()、$.fn和$.fn.extend()

    jquery插件的种类: 1.对象级别的插件开发,即给jQuery对象添加方法,封装对象方法的插件,如:parent().appendTo() 2.一种是类级别的插件开发,即给jQuery添加新的全局 ...

  8. jQuery插件的开发之$.extend(),与$.fn.extend()

        jQuery插件的开发包括两种: 一种是类级别的插件开发,即给jQuery添加新的全局函数,相当于给jQuery类本身添加方法.jQuery的全局函数就是属于jQuery命名空间的函数,另一种 ...

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

    jQuery为开发插件提拱了两个方法,分别是: jQuery.fn.extend(); jQuery.extend(); jQuery.fn jQuery.fn = jQuery.prototype ...

随机推荐

  1. 为了去重复,写了一个通用的比较容器类,可以用在需要比较的地方,且支持Lamda表达式

    为了去重复,写了一个通用的比较容器类,可以用在需要比较的地方,且支持Lamda表达式,代码如下: public class DataComparer<T>:IEqualityCompare ...

  2. UIScrollView子控件的布局

    scorllView内部子控件添加约束的注意点: 1.子控件的尺寸不能通过UIScrollView来计算 *比如可以设置固定值 (width==100 height ==100) *比如可以相对于UI ...

  3. mysql update中需要根据条件列更新写法update case

    以下两条语句是否可以合并成一条: where b>'2015-10-12'; , e='2015-01-01' where b='2015-10-12'; 既然来写博客了,那答案肯定是可以的, ...

  4. P6 EPPM 安装与配置指南 16 R1 2016.4

       关于安装和 配置P6 EPPM 本指南告诉你如何自动 安装和配置您的应用程序. 在您开始之前,阅读 先决条件 P6 EPPM配置 (7页). 安装P6 EPPM 您将使用 安装程序 (窗口) . ...

  5. ScriptManager和UpdatePanel控件实现局部刷新

    ScriptManager和UpdatePanel控件联合使用可以实现页面异步局部更新的效果.其中的UpdatePanel就是设置页面中异步局部更新区域,它必须依赖于ScriptManager存在,因 ...

  6. Windows server 2008 r2搭建FTP服务器

    最近需要搭建FTP服务器,顺着书上的教程走一遍流程. 1. 安装FTP服务 图一 图二 图三 可以看到上面提示并未启动windows自动更新,这个需要注意一下. 2. 新建FTP站点 准备FTP文件夹 ...

  7. Python入门笔记(24):Python面向对象(1)速成

    一.Python经典类与新类 经典类:如果没有直接或间接的子类化一个对象,也就是说如果没有指定一个父类,或者是如果子类化的基本类没有父类,那么就定义了经典类: class classics: 'def ...

  8. Servelet面试题

    1. Servlet与JSP有什么区别? Servlet和JSP完成的功能是相同的,都可以接收用户的请求,可以对用户进行响应,可以调用业务方法. 不同点在于JSP是在html或者xml中嵌入了Java ...

  9. How Tomcat Works读书笔记之升级架构

    上一篇HttpServer类职责很多,包括启动服务器,创建ServerSocket,得到客户端Socket,创建Request对象和Response对象,并解析Http请求,这样很混乱,不利于以后服务 ...

  10. 【图解】Eclipse下JRebel6.2.0热部署插件安装、破解及配置【转】

    标签: 这两天在做后台管理系统,前端框架用Bootstrap,后端用SpringMVC+Velocity.在开发过程中,经常需要对界面进行微调,调整传参等,每次更改一次java代码,就得重新部署一次, ...