当今web开发往往离不开Jquery的使用,Jquery以其简洁的使用方式、良好的浏览器兼容性赢得了软件研发同行的青睐,作为其中的一员,自然也不例外,尽管刚开始时很排斥Jquery,今天我谈一下对Jquery中$与$.fn的认识和理解,不对地方深望指正:

1、什么是$?

答:jquery的另一种表现形式;

2、看下面的例子:

例子01:

 1  <html>
2 <head>
3 <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
4 <title>$与$.fn的区别——demo 01</title>
5 <script type="text/javascript" src="./jquery-1.6.2.js"></script>
6 <script type="text/javascript">
7 $.test = function(a,b) {
8 return a+b;
9 };
10 alert($.test(4,4));
11 </script>
12 </head>
13 <body>
14 </body>
15 </html>

2.

 1   例子02:
2
3 <html>
4 <head>
5 <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
6 <title>$与$.fn的区别——demo 02</title>
7 <script type="text/javascript" src="./jquery-1.6.2.js"></script>
8 <script type="text/javascript">
9 $.extend({
10 test:function(a,b) {
11 return a+b;
12 }
13 });
14 alert($.test(4,4));
15 </script>
16 </head>
17 <body>
18 </body>
19 </html>

上面两个例子中的黄色背景出的代码有什么不同和相同?

答:除了功能相同以外最大的相同点在于调用函数(或方法)的方式相同;上面两个例子最大的不同点在于声明创建test方法的方式不同。

3、看下面的例子:

例子03:

 1                    <html>
2 <head>
3 <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
4 <title>$与$.fn的区别——demo 03</title>
5 <script type="text/javascript" src="./jquery-1.6.2.js"></script>
6 <script type="text/javascript">
7 $.fn.test = function() {
8 return $(this).val();
9 };
10 $(function(){
11 alert($("#name").test());
12 });
13 </script>
14 </head>
15 <body>
16 <input type="hidden" id="name" name="name" value="高焕杰"/>
17 </body>
18 </html>

例子04:

 1                <html>
2 <head>
3 <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
4 <title>$与$.fn的区别——demo 04</title>
5 <script type="text/javascript" src="./jquery-1.6.2.js"></script>
6 <script type="text/javascript">
7 $.fn.extend({
8 test:function() {
9 return $(this).val();
10 }
11 });
12 $(function(){
13 alert($("#name").test());
14 });
15 </script>
16 </head>
17 <body>
18 <input type="hidden" id="name" name="name" value="高焕杰"/>
19 </body>
20 </html>

上面两个例子中的绿色背景出的代码有什么不同和相同?

答:除了功能相同以外最大的相同点在于调用函数(或方法)的方式相同;上面两个例子最大的不同点在于声明创建test方法的方式不同。

4、Jquery中$与$.fn的区别是什么?

答:在回答这个问题以前,需要明白一个事实:Jquery的方法是可以拓展的,上面这4个例子都是对Jquery方法的拓展,从调用声明创建方法的方式来看,可以归结为两类:一类直接由$符调用;另一类由$("")来调用,说到这里你是不是想到了Java语言中的静态方法和实例方法,是的,如果从java类的角度认识调用创建的Jquery方法可能更好理解些,尽管Javascript没有明确的类的概念。好了现在可以回答问题了:$拓展的方法是静态方法,可以使用$直接调用,其拓展的方式有两种,一般使用$.extend({});;而$.fn拓展的方法是实例方法,必须由“对象”$("")来调用,其拓展的方式同样有两种,一般使用$.fn.extend({ })。

5、知识延展,究竟什么是fn?

答:同样在回答这样一个问题以前请打开一个Jquery文件(0分下载) 搜索这样一个字符“jQuery.prototype”,告诉我你看到了什么:jQuery.fn = jQuery.prototype = {......},嗯嗯,或许你已经猜到了——fn就是prototype,是这样吗?请看下面的两个例子:

例子05:

 1         <html>
2 <head>
3 <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
4 <title>$与$.fn的区别——demo 05</title>
5 <script type="text/javascript" src="./jquery-1.6.2.js"></script>
6 <script type="text/javascript">
7 $.prototype.test = function() {
8 return $(this).val();
9 };
10 $(function(){
11 alert($("#name").test());
12 });
13 </script>
14 </head>
15 <body>
16 <input type="hidden" id="name" name="name" value="高焕杰"/>
17 </body>
18 </html>

例子06:

 1        <html>
2 <head>
3 <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
4 <title>$与$.fn的区别——demo 06</title>
5 <script type="text/javascript" src="./jquery-1.6.2.js"></script>
6 <script type="text/javascript">
7 $.prototype.extend({
8 test:function() {
9 return $(this).val();
10 }
11 });
12 $(function(){
13 alert($("#name").test());
14 });
15 </script>
16 </head>
17 <body>
18 <input type="hidden" id="name" name="name" value="高焕杰"/>
19 </body>
20 </html> http://www.cnblogs.com/sharpest/p/6271039.html

Jquery中$与$.fn的区别的更多相关文章

  1. jquery的$.与$.fn的区别

    这个是jquery插件的形式,举个例子: <div id="myDiv"></div> (function($){ $.fn.extend({ test:f ...

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

    1.认识jQuery extend()和jQuery.fn.extend() jQuery的API手册中,extend方法挂载在jQuery和jQuery.fn两个不同对象上方法,但在jQuery内部 ...

  3. $.extend() 或 jQuery.extend() 与 $.fn.Xxx 或 jQuery.fn.extend(object) 之jQuery插件开发

    jQuery为开发插件提拱了两个方法 语法现象1:$.extend() 或 jQuery.extend() 或 jQuery.extend(object)//可以理解为为jQuery类添加类方法或静态 ...

  4. jQuery介绍 DOM对象和jQuery对象的转换与区别

    jQuery介绍 DOM对象和jQuery对象的转换与区别 jQuery介绍      jQuery: http://jquery.com/      write less, do more.   j ...

  5. Jquery中$与$.fn的差别

    当今web开发往往离不开Jquery的使用,Jquery以其简洁的使用方式.良好的浏览器兼容性赢得了软件研发同行的青睐,作为当中的一员,自然也不例外,虽然刚開始时非常排斥Jquery,今天我谈一下对J ...

  6. jquery中onclick="fn"中$(this)所代表的对象

    jquery中onclick="fn"中$(this)所代表的对象 js方法 function qiehuan(){ var src = $(this).attr("da ...

  7. jquery生产和开发的区别

    今天说一下jquery生产和开发的区别,在我们下载jquery的时候,会有两个下载链接,一个是jquery.min.js .迷你版 (生产),另一个是 jquery.js .开发版 .不知道的人可能就 ...

  8. JQuery this和$(this)的区别及获取$(this)子元素对象的方法

    1.JQuery this和$(this)的区别 相信很多刚接触JQuery的人,很多都会对$(this)和this的区别模糊不清,那么这两者有什么区别呢? 首先来看看JQuery中的  $()  这 ...

  9. jquery中的$.fn的用法

    JQuery里的原型prototype分析       http://www.nowamagic.net/librarys/veda/detail/653 jquery中的$.fn的用法       ...

随机推荐

  1. 「CodeChef - SKIRES」Ski Resort

    题目链接 戳我 \(Description\) 给你一个\(n*m\)的网格,以及网格上的两个格子\(A,B\).每个格子有一个高度.每次操作可以选择一个格子(不能是\(A\)或\(B\))并将它的高 ...

  2. Android 多线程基础

    需要注意几个概念:Runnable,Thread,Handler. 1. Runnable只是一个接口,里面包含run()函数.所以Runnable本身不会开启线程. 2. Thread实现Runna ...

  3. C博客作业06—结构体&指针

    1.本章学习总结 1.1思维导图 1.2本章学习体会 明白了结构体的定义及使用方法 学会了fopen,fclose,feof等文件操作函数,学会使用c语言进行文件操作 大作业中的部分函数出现未知错误且 ...

  4. mongodb 备份脚本

    ###############备份脚本#!/bin/bash basepath="/data/backup/dump$(date +%Y%m%d%H%M%S)" if [ ! -d ...

  5. P3357 最长k可重线段集问题 网络流

    P3357 最长k可重线段集问题 题目描述 给定平面 x-O-yx−O−y 上 nn 个开线段组成的集合 II,和一个正整数 kk .试设计一个算法,从开线段集合 II 中选取出开线段集合 S\sub ...

  6. httpclient4.5 https请求 忽略身份验证

    import org.apache.commons.collections.MapUtils; import org.apache.http.*; import org.apache.http.cli ...

  7. leetcode-78-子集(用bfs解决)

    题目描述: 给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集). 说明:解集不能包含重复的子集. 示例: 输入: nums = [1,2,3] 输出: [ [3],   [1] ...

  8. 编译原理(一)绪论概念&文法与语言

    绪论概念&文法与语言 以老师PPT为标准,借鉴部分教材内容,AlvinZH学习笔记. 绪论基本概念 1. 低级语言:字位码.机器语言.汇编语言.与特定的机器有关,功效高,但使用复杂.繁琐.费时 ...

  9. maven web不能创建src/main/java等文件等问题

    我们在创建maven web项目的时候,默认只有src/main/resources这个source folder,我们按照maven结构添加src/main/java和src/test/java等s ...

  10. Hibernate 工具类

    1.HibernateConfigUtil.java(HIbernate配置工具类) import org.hibernate.Session; import org.hibernate.Sessio ...