【Web前端】Js 中的 this 和 jQuery 中的 this
2016-11-27 10:16
363 查看
前言
在学到 jQuery 这一块的时候,出现了 jQuery 的 this,在这里记录一下与 Js 中的 this 的区别。Js 中的 this
这里指的是当前的上下文对象,简单的说就是方法/属性的所有者。下面例子中,imooc 是一个对象,拥有 name 属性与 getName 方法,在 getName 中 this 指向了所属的对象 imooc:
var imooc = { name:"慕课网", getName:function(){ //this,就是imooc对象 return this.name; } } imooc.getName(); //慕课网
当然在 JavaScript 中 this 是动态的,也就是说这个上下文对象都是可以被动态改变的(可以通过 call,apply 等方法),具体的大家可以查阅相关资料。
同样的在 DOM 中 this 就是指向了这个 html 元素对象,因为 this 就是 DOM 元素本身的一个引用。
假如给页面一个 P 元素绑定一个事件:
p.addEventListener('click',function(){ //this === p //以下两者的修改都是等价的 this.style.color = "red"; p.style.color = "red"; },false);
通过 addEventListener 绑定的事件回调中,this 指向的是当前的 dom 对象,所以再次修改这样对象的样式,只需要通过 this 获取到引用即可。
this.style.color = "red"
但是这样的操作其实还是很不方便的,这里面就要涉及一大堆的样式兼容,如果通过 jQuery 处理就会简单多了,我们只需要把 this 加工成 jQuery 对象。
jQuery 中的 this
$('p').click(function(){ //把p元素转化成jQuery的对象 var $this= $(this) $this.css('color','red') })
通过把 $() 方法传入当前的元素对象的引用this,把这个 this 加工成 jQuery 对象,我们就可以用 jQuery 提供的快捷方法直接处理样式了。
总结
this,表示当前的上下文对象是一个 html 对象,可以调用 html 对象所拥有的属性和方法。$(this),代表的上下文对象是一个 jquery 的上下文对象,可以调用 jQuery 的方法和属性值。
感谢慕课网
相关文章推荐
- WEB前端 | JS基础——(4)数组、二维数组和this
- jQuery延迟加载(懒加载)插件 – jquery.lazyload.js-Web前端(W3Cways.com) - Web前端学习之路
- web前端.js--seajs--把jquery改造标准CMD模块的方法
- WEB前端 | JS基础——(13)JQuery
- JS + HTML + JQUERY + CSS WEB前端技术积累
- 【javaWeb之前端】前端面试题-----js和jquery的区别是什么?
- javaWeb------前端知识(js,jquery)
- web性能优化之- js自定义函数延迟执行 jquery插件
- 指尖下的js —— 多触式web前端开发之三:处理复杂手势
- 指尖下的js ——多触式web前端开发之二:处理简单手势
- jquery/js 实现 标签 条码 一维码 Web页面 区域打印解决方案 实例
- Web前端开发(JQuery)
- zepto.js 手机web开发 js 框架,类似于jquery
- 不要再吹水地球人听不懂的技术,咱来点干货!--中文前端UI框架Kit(四)给你真正的原生的drag以及drop事件,而不是像市面上主流的Js框架jQuery,Ext等,利用mousemove事件,判断位置来模拟
- 分享下载 23 款简单常用的web前端jquery网页特效
- web 前端 js源代码
- extjs jquery dwr ajax flex等web前端框架技术介绍
- 精选推荐 23 款基于jquery的web前端网页特效
- js原生态函数中使用jQuery中的 $(this)无效的解决方法