浅谈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 相关文章推荐
基于jquery.Jcrop的头像编辑器
Mar 01 Javascript
JavaScript和ActionScript的交互实现代码
Aug 01 Javascript
web前端设计师们常用的jQuery特效插件汇总
Dec 07 Javascript
JavaScript编写推箱子游戏
Jul 07 Javascript
JavaScript实现自动消除按钮功能的方法
Aug 05 Javascript
AngularJS 如何在控制台进行错误调试
Jun 07 Javascript
vue组件实现可搜索下拉框扩展
Oct 23 Javascript
细说Vue组件的服务器端渲染的过程
May 30 Javascript
JavaScript实现PC端横向轮播图
Feb 07 Javascript
koa2的中间件功能及应用示例
Mar 05 Javascript
简单谈谈offsetleft、offsetTop和offsetParent
Dec 04 Javascript
JavaScript实现简单计时器
Jun 22 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
MySQL GBK→UTF-8编码转换
2007/05/24 PHP
深入PHP数据加密详解
2013/06/18 PHP
json的键名为数字时的调用方式(示例代码)
2013/11/15 PHP
tp5.1 实现setInc字段自动加1
2019/10/18 PHP
Cookie 注入是怎样产生的
2009/04/08 Javascript
jquery提升性能最佳实践小结
2010/12/06 Javascript
js调用后台servlet方法实例
2013/06/09 Javascript
利用js动态添加删除table行的示例代码
2013/12/16 Javascript
JQuery显示、隐藏div的几种方法简明总结
2015/04/16 Javascript
vue2.0实现导航菜单切换效果
2017/05/08 Javascript
实现一个完整的Node.js RESTful API的示例
2017/09/29 Javascript
浅谈angular4实际项目搭建总结
2017/12/01 Javascript
详解刷新页面vuex数据不消失和不跳转页面的解决
2018/01/30 Javascript
Vue 实现列表动态添加和删除的两种方法小结
2018/09/07 Javascript
javascript关于“时间”的一次探索
2019/07/24 Javascript
微信小程序本地存储实现每日签到、连续签到功能
2019/10/09 Javascript
Vue中使用matomo进行访问流量统计的实现
2019/11/05 Javascript
python 多进程通信模块的简单实现
2014/02/20 Python
python自动安装pip
2014/04/24 Python
wxPython框架类和面板类的使用实例
2014/09/28 Python
Python 专题五 列表基础知识(二维list排序、获取下标和处理txt文本实例)
2017/03/20 Python
Python 判断 有向图 是否有环的实例讲解
2018/02/01 Python
python函数式编程学习之yield表达式形式详解
2018/03/25 Python
Python中的heapq模块源码详析
2019/01/08 Python
Python2与Python3的区别实例总结
2019/04/17 Python
python通过http下载文件的方法详解
2019/07/26 Python
使用Python实现画一个中国地图
2019/11/23 Python
Flask模板引擎Jinja2使用实例
2020/04/23 Python
Python代码需要缩进吗
2020/07/01 Python
CSS3 边框效果
2019/11/04 HTML / CSS
全球烹饪课程的领先预订平台:Cookly
2020/01/28 全球购物
暑期社会实践学生的自我评价
2014/01/09 职场文书
二年级上册数学教学计划
2015/01/20 职场文书
郭明义电影观后感
2015/06/08 职场文书
在人间读书笔记
2015/06/30 职场文书
Vue监视数据的原理详解
2022/02/24 Vue.js