jQuery中this和$(this)之间的区别:

this返回的是当前对象的html对象,而$(this)返回的是当前对象的jQuery对象

举个正确的Demo实例:

$("#textbox").hover(function() {this.title = "Test";},         fucntion() {             this.title = "OK”;         }   );

View Code

以上的this为html元素即元素textbox,该元素有title属性,因此以上的程序没有错误。如果将以上的程序中this替换成$(this)时,该程序就会报错,因为$(this)返回的是一个jQuery对象,而jQuery对象是没有title这些属性的,而$(this)中有方法可以对html元素中title属性进行设置和修改。代码如下:

 $("#textbox").hover(function() {$(this).attr('title', 'Test');},         fucntion() {             $(this).attr('title', 'OK');         }   );

View Code

使用jQuery的好处是它包裝了各种浏览器版本对DOM对象的操作,因此统一使用$(this)而不再用this应该是比较不错的选择。

$.fn是指jquery的命名空间,加上fn上的方法及属性,会对jquery实例每一个有效。如扩展$.fn.test(),即$.fn.test()是对jquery扩展了一个test方法,那么后面你的每一个jquery实例都可以引用这个方法了。

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

也就是说jQuery.extend(object)相当于扩展静态的方法,而jQuery.fn.extend(object)相当于扩展非静态的成员方法。

jQuery.extend(object)Demo实例代码如下:

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

View Code

使用方法如下:$.add(3,4); //return 7

jQuery.extend()方法也可以用作合并对象,在合并对象时,第一个参数代表是否需要深合并。使用的原型为:jQuery.extend(bool,destObj,sourceObj)

jQuery.extend(bool,destObj,sourceObj1,sourceObj2,...)Demo实例代码如下:

var destObj={ name: "destname", location: {city: "destcicty",county:"destcountry"}
};var sourceObj={ name: "sourcename1", location: {city: "soucecity1",county:"sourcecountry1"}
};var sourceObj2={ name: "sourcename2", location: {city: "soucecity2",county:"sourcecountry2"}
};var result=$.extend(true,destObj,sourceObj1,sourceObj2);        //result=var sourceObj={ name: "sourcename2", location: {city: "soucecity2",county:"sourcecountry2"} }

View Code

jQuery.fn.extend(object)是对jQuery.prototype进得扩展,jQuery类的实例可以使用这个“成员函数”。 Demo实例代码如下:

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

View Code

转载于:https://www.cnblogs.com/chengbing2011/p/4098337.html

JavaScript中this和$(this)之间的区别以及extend的使用相关推荐

  1. 一元流量参数为null_了解JavaScript中null和undefined之间的差异和相似之处

    干货技术→JavaScript 乍一看,null和undefined看起来可能相同,但它们远非如此.本文将探讨JavaScript中null和undefined之间的差异和相似之处. 如果你对编程感兴 ...

  2. Jquery中.val()与.value之间的区别

    三年多没敲过代码了,今年打算捡起来,是需要多么大的勇气.但是为了实现自我价值,履行自我的承诺,这就是责任.没有什么难不难,晚不晚之说,是我经常对别人说的那样,再晚不过心晚,,一切努力了,实现了每一天的 ...

  3. java引用类型和值类型_[Java教程]JavaScript中值类型和引用类型的区别

    [Java教程]JavaScript中值类型和引用类型的区别 0 2017-02-24 00:00:35 JavaScript的数据类型分为两类:原始类型和对象类型.其中,原始类型包括:数字.字符串和 ...

  4. python __import__和import区别_Python中import 与__import__() 之间的区别比较

    本篇文章给大家带来的内容是关于Python中import 与__import__() 之间的区别比较,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 首先来说一下两者的区别: impo ...

  5. sql server序列_SQL Server中身份和序列之间的区别

    sql server序列 In SQL Server, both the SEQUENCE object and IDENTITY property are used to generate a se ...

  6. Oracle中用户和架构之间的区别?

    本文翻译自:Difference between a user and a schema in Oracle? Oracle中的用户和架构有什么区别? #1楼 参考:https://stackoom. ...

  7. C#中Int64和UInt64之间的区别

    Int64:此 Struct用于表示64位带符号整数.所述的Int64 可以两种类型的值,包括所述范围之间的负的和正的存储-9,223,372,036,854,775,808至9,223,372,03 ...

  8. -ms-flexbox_Flexbox中width和flex-basis之间的区别

    -ms-flexbox by Kyle Gallagher 凯尔·加拉格尔(Kyle Gallagher) Flexbox中width和flex-basis之间的区别 (The difference ...

  9. c# int uint32_C#中Int32和UInt32之间的区别

    c# int uint32 C#Int32和C#UInt32 (C# Int32 and C# UInt32) In C#, Int32 known as a signed integer of 4 ...

  10. 如何快速找出找出两个数组中的_找出JavaScript中两个数组之间的差异

    LeetCode今天面临的挑战是在数组中查找所有消失的数字. 蛮力 我们的输入包括一个缺少数字的实际数组.我们想将该数组与相同长度的数组进行比较,其中没有遗漏的数字.所以如果给定的话[4,3,2,7, ...

最新文章

  1. Python的一些小技巧小知识
  2. linux qos 实现机制,linux的qos机制 - cgroup篇 (4)
  3. 【django】视图和URL
  4. n^n的末位数字(快速幂)
  5. iphone看python文件_Python实战 | 只需 ”三步“ 爬取二手iphone手机信息(转发送源码)...
  6. ubuntu下部署mongodb以及设置允许远程连接
  7. Android studio 单元测试
  8. mysql 1449 : The user specified as a definer ('usertest'@'%') does not exist 解决方法 (grant 授予权限)...
  9. django 学习 (二) 模板
  10. php运行环境出现Undefined index 或variable时解决方法
  11. python qq聊天机器人_Python QQBot库的QQ聊天机器人
  12. 人人都是 DBA(IV)SQL Server 内存管理 (转)
  13. C语言的考试系统,C语言考试系统.doc
  14. PayPal支付流程
  15. 浏览器上不去网络。需要进入ie点开Internet选项,网络中,局域网(LAN)设置,可以勾选上自动检测设置
  16. MongoDB数据库重命名
  17. android:详细解读DialogFragment
  18. 三款超火的国外壁纸应用,让你每天都用新手机
  19. Matlab学习手记——非线性拟合方法:压缩因子粒子群算法
  20. 点云库pcl从入门到精通 第十章

热门文章

  1. python 调用github的api,呈现python的受欢迎的程度
  2. 2019年3月1日-日记
  3. shell脚本解析5----循环语句
  4. css 这个特性,你敢信
  5. 【谈天说地】诋毁中华文化的三大谎言(之三)
  6. 学习 trajectory.txt
  7. Oracle游标 CURSOR实例详解
  8. Http协议中常用字段总结(不定时完善中)
  9. JVM 新生代老年代
  10. ubuntu下使用code::blocks编译运行一个简单的gtk+2.0项目