浅谈javascript中this在事件中的应用


Posted in Javascript onFebruary 15, 2015

this关键字在javascript中是非常强大的,但是如果你不清楚它是怎么工作的就很难使用它.

function dosomething(){ this.style.color="#fff"; }

上面这段代码中的this指向什么呢,运行dosomething()会输出什么呢?

在javascript中,this总是指向当前执行的这个函数,或者把函数作为方法调用的这个对象.当我们在页面上定义dosomething()这个方法后,this的所有者就是当前的页面,或者说是全局对象.

所以我们执行dosomething()这个函数,会引发错误.因为函数的this指向的是全局对象window,而window对象没有style属性.

复制:

element.onclick=dosomething;

dosomething()现在被整个复制到onclick属性上作为一个方法.所以如果这个事件执行的话,this就指向这个HTML元素,相应HTML元素的color就会改变.dosomething每次复制到事件上,this就会指向当前执行这个方法的html元素.

引用:

<element onclick="dosomething()">

此时你没有复制这个方法,而是引用了这个方法,onclick属性并不包含实际的方法,仅仅只是一个方法的调用.当我们执行这个方法时,this再次指向全局window对象并引发错误.

以上就是本文的全部内容了,有需要的小伙伴好好来研究下吧。

Javascript 相关文章推荐
发布一个基于javascript的动画类 Fx.js
Nov 05 Javascript
如何正确使用javascript 来进行我们的程序开发
Jun 23 Javascript
javascript实现点击按钮让DIV层弹性移动的方法
Feb 24 Javascript
JavaScript通过字符串调用函数的实现方法
Mar 18 Javascript
JS实现的通用表单验证插件完整实例
Aug 20 Javascript
jQuery插件FusionCharts实现的2D柱状图效果示例【附demo源码下载】
Mar 06 Javascript
React中上传图片到七牛的示例代码
Oct 10 Javascript
利用vue和element-ui设置表格内容分页的实例
Mar 02 Javascript
layui使用label标签的方法
Sep 14 Javascript
vue+导航锚点联动-滚动监听和点击平滑滚动跳转实例
Nov 13 Javascript
Vue为什么要谨慎使用$attrs与$listeners
Aug 27 Javascript
Ajax实现异步加载数据
Nov 17 Javascript
javascript使用正则表达式实现去掉空格之后的字符
Feb 15 #Javascript
分享一个自己写的简单的javascript分页组件
Feb 15 #Javascript
Linux下编译安装php libevent扩展实例
Feb 14 #Javascript
jQuery中extend函数详解
Feb 13 #Javascript
JavaScript将Web页面内容导出到Word及Excel的方法
Feb 13 #Javascript
javascript上下方向键控制表格行选中并高亮显示的方法
Feb 13 #Javascript
JS+CSS实现可拖拽的漂亮圆角特效弹出层完整实例
Feb 13 #Javascript
You might like
php中sql注入漏洞示例 sql注入漏洞修复
2014/01/24 PHP
php获取用户浏览器版本的方法
2015/01/03 PHP
php中使用GD库做验证码
2016/03/31 PHP
js的with语句使用方法
2007/09/21 Javascript
不要小看注释掉的JS 引起的安全问题
2008/12/27 Javascript
utf-8编码引起js输出中文乱码的解决办法
2010/06/23 Javascript
jQuery中closest()函数用法实例
2015/01/07 Javascript
JavaScript实现随机替换图片的方法
2015/04/16 Javascript
js转换对象为xml
2017/02/17 Javascript
深入理解Node.js中的进程管理
2017/03/13 Javascript
js实现倒计时关键代码
2017/05/05 Javascript
JavaScript中的return布尔值的用法和原理解析
2017/08/14 Javascript
原生JS 购物车及购物页面的cookie使用方法
2017/08/21 Javascript
利用ES6的Promise.all实现至少请求多长时间的实例
2017/08/28 Javascript
JS实现自定义状态栏动画文字效果示例
2017/10/12 Javascript
每个 JavaScript 工程师都应懂的33个概念
2018/10/22 Javascript
用vuex写了一个购物车H5页面的示例代码
2018/12/04 Javascript
小程序:授权、登录、session_key、unionId的详解
2019/05/15 Javascript
jquery实现抽奖功能
2020/10/22 jQuery
[51:22]Fnatic vs IG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
python获取文件版本信息、公司名和产品名的方法
2014/10/05 Python
Python中类的继承代码实例
2014/10/28 Python
python使用xlrd和xlwt读写Excel文件的实例代码
2018/09/05 Python
解决python Markdown模块乱码的问题
2019/02/14 Python
Python玩转加密的技巧【推荐】
2019/05/13 Python
Python脚本利用adb进行手机控制的方法
2019/07/08 Python
解决python tkinter界面卡死的问题
2019/07/17 Python
Python @property及getter setter原理详解
2020/03/31 Python
python suds访问webservice服务实现
2020/06/26 Python
Python OpenCV去除字母后面的杂线操作
2020/07/05 Python
纯css实现照片墙3D效果的示例代码
2017/11/13 HTML / CSS
HTML5网页录音和上传到服务器支持PC、Android,支持IOS微信功能
2019/04/26 HTML / CSS
实验室标语
2014/06/21 职场文书
公司人事任命通知
2015/04/20 职场文书
2016年学校招生广告语
2016/01/28 职场文书
MySQL查看表和清空表的常用命令总结
2021/05/26 MySQL