浅谈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 multibox 全选
Mar 22 Javascript
JS对img进行操作(换图片/切图/轮换/停止)
Apr 17 Javascript
js同比例缩放图片的小例子
Oct 30 Javascript
javascript顺序加载图片的方法
Jul 18 Javascript
使用Node.js实现ORM的一种思路详解(图文)
Oct 24 Javascript
基于three.js编写的一个项目类示例代码
Jan 05 Javascript
js中时间格式化的几种方法
Jul 22 Javascript
mpvue微信小程序多列选择器用法之省份城市选择的实现
Mar 07 Javascript
微信小程序按钮点击跳转页面详解
May 06 Javascript
微信小程序实现吸顶效果
Jan 08 Javascript
使用js和canvas实现时钟效果
Sep 08 Javascript
通过JS判断网页是否为手机打开
Oct 28 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
JQuery 中几个类选择器的简单使用介绍
2013/03/14 Javascript
获取数组中最大最小值方法js代码(自写)
2013/08/12 Javascript
document.execCommand()的用法小结
2014/01/08 Javascript
javascript使用输出语句实现网页特效代码
2015/08/06 Javascript
jQuery蓝色风格滑动导航栏代码分享
2015/08/19 Javascript
程序员必知35个jQuery 代码片段
2015/11/05 Javascript
jQuery Form 表单提交插件之formSerialize,fieldSerialize,fieldValue,resetForm,clearForm,clearFields的应用
2016/01/23 Javascript
微信小程序 触控事件详细介绍
2016/10/17 Javascript
js仿淘宝评价评分功能
2017/02/28 Javascript
JS实现复制功能
2017/03/01 Javascript
Vue指令的钩子函数使用方法
2017/03/20 Javascript
浅谈angularjs依赖服务注入写法的注意点
2017/04/24 Javascript
深入理解Angularjs中$http.post与$.post
2017/05/19 Javascript
ionic中的$ionicPlatform.ready事件中的通用设置
2017/06/11 Javascript
Vue中计算属性computed的示例解读
2017/07/26 Javascript
详解Vue内部怎样处理props选项的多种写法
2018/11/06 Javascript
[02:09]EHOME夺得首届辉夜杯冠军—现场颁奖仪式
2015/12/28 DOTA
400多行Python代码实现了一个FTP服务器
2012/05/10 Python
Python内置模块turtle绘图详解
2017/12/09 Python
django数据库migrate失败的解决方法解析
2018/02/08 Python
Python TestSuite生成测试报告过程解析
2020/07/23 Python
python利用opencv保存、播放视频
2020/11/02 Python
selenium+超级鹰实现模拟登录12306
2021/01/24 Python
python利用后缀表达式实现计算器功能
2021/02/22 Python
HTML5离线缓存在tomcat下部署可实现图片flash等离线浏览
2012/12/13 HTML / CSS
RentCars.com巴西:汽车租赁网站
2016/08/22 全球购物
物业管理员岗位职责范文
2013/11/25 职场文书
业务员的岗位职责
2014/03/15 职场文书
公司业务员岗位职责
2014/03/18 职场文书
新年主持词
2014/03/27 职场文书
2014年路政工作总结
2014/12/10 职场文书
务虚会发言材料
2014/12/25 职场文书
2015年仓库管理工作总结
2015/05/25 职场文书
班委竞选稿范文
2015/11/21 职场文书
react如何快速设置文件路径别名
2021/04/28 Javascript
Golang 实现获取当前函数名称和文件行号等操作
2021/05/08 Golang