浅谈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之锁定表格栏位
Jun 29 Javascript
js 分栏效果实现代码
Aug 29 Javascript
jquery tools 系列 scrollable学习
Sep 06 Javascript
Javascript学习笔记之 函数篇(一) : 函数声明和函数表达式
Jun 24 Javascript
Sequelize中用group by进行分组聚合查询
Dec 12 Javascript
Bootstrap面板使用方法
Jan 16 Javascript
vue-cli3.0如何使用CDN区分开发、生产、预发布环境
Nov 22 Javascript
使用vuex存储用户信息到localStorage的实例
Nov 11 Javascript
Vue2.0 实现页面缓存和不缓存的方式
Nov 12 Javascript
基于JavaScript实现留言板功能
Mar 16 Javascript
vue与iframe之间的信息交互的实现
Apr 08 Javascript
Jquery 获取相同NAME 或者id删除行操作
Aug 24 jQuery
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
Email+URL的判断和自动转换函数
2006/10/09 PHP
php网页后退不再出现过期
2007/03/08 PHP
PHP 危险函数解释 分析
2009/04/22 PHP
php smarty模版引擎中变量操作符及使用方法
2009/12/11 PHP
php cc攻击代码与防范方法
2012/10/18 PHP
解析wamp5下虚拟机配置文档
2013/06/27 PHP
php中opendir函数用法实例
2014/11/15 PHP
谈谈PHP中substr和substring的正确用法及相关参数的介绍
2015/12/16 PHP
PHP检查文件是否存在,不存在自动创建及读取文件内容操作示例
2020/01/23 PHP
锋利的jQuery 要点归纳(三) jQuery中的事件和动画(上:事件篇)
2010/03/24 Javascript
关于Jqzoom的使用心得 jquery放大镜效果插件
2010/04/12 Javascript
web开发人员学习jQuery的6大理由及jQuery的优势介绍
2013/01/03 Javascript
JavaScript中读取和保存文件实例
2014/05/08 Javascript
jquery ajax请求方式与提示用户正在处理请稍等
2014/09/01 Javascript
node.js中的console.error方法使用说明
2014/12/10 Javascript
javascript十六进制及二进制转化的方法
2015/05/06 Javascript
JQuery包裹DOM节点的方法
2015/06/11 Javascript
快速学习jQuery插件 jquery.validate.js表单验证插件使用方法
2015/12/01 Javascript
JavaScript实现经典排序算法之冒泡排序
2016/12/28 Javascript
微信小程序全局变量功能与用法详解
2019/01/22 Javascript
原生JS实现贪吃蛇小游戏
2020/03/09 Javascript
Python中几种属性访问的区别与用法详解
2018/10/10 Python
numpy.random模块用法总结
2019/05/27 Python
Python实现FLV视频拼接功能
2020/01/21 Python
如何使用python socket模块实现简单的文件下载
2020/09/04 Python
python基于opencv 实现图像时钟
2021/01/04 Python
解决python的空格和tab混淆而报错的问题
2021/02/26 Python
HTML5 Canvas 破碎重组的视频特效的示例代码
2019/09/24 HTML / CSS
有模特经验的简历自我评价
2013/09/19 职场文书
一名毕业生的自我鉴定
2013/12/04 职场文书
转预备党员政审材料
2014/02/06 职场文书
《大海那边》教学反思
2014/04/09 职场文书
公司总经理岗位职责范本
2014/08/15 职场文书
2014年酒店工作总结范文
2014/11/17 职场文书
感恩教师主题班会
2015/08/12 职场文书
MySQL创建索引需要了解的
2021/04/08 MySQL