关于this在不同使用情况表示的含义
1. addEventListener 函数中的this 指向的是出发事件的事件源
obj.addEventListener('click',function(){
console.log(this);//this指向obj
},false);
2.attachEvent 函数中的this 指向的是 window
obj.attachEvent('onclick',function(){
console.log(this);//this指向window
});
//当如果需要使用attachEvent 中的事件源
obj.attachEvent('onclick',event => console.log(event.srcElement));
3.箭头函数和普通函数内部的this 表示的意义(箭头函数里面根本没有自己的this,而是引用外层的this。)

(如图:普通函数指向的是widow 而箭头函数指向的定义时所在的所用域 即 Timer)
除了this,以下三个变量在箭头函数之中也是不存在的,指向外层函数的对应变量:arguments、super、new.target。
4. 大多数函数里的this指向为当前作用域上一级的对象


是不是感觉第二种是个特例?

关于this在不同使用情况表示的含义的更多相关文章
- MYSQL数据回流
一般的网站应用中,总会有部分二次数据(处理过的原始数据)展现给前台,比如,拿购物网站来说,购买进口奶粉最多的用户群体:哪类产品消费增长趋势最旺盛:用户的消费历史归类等都是二次数据.由于这部分 ...
- FZU 1894 志愿者选拔(单调队列)
传送门 Description 世博会马上就要开幕了,福州大学组织了一次志愿者选拔活动.参加志愿者选拔的同学们排队接受面试官们的面试.参加面试的同学们按照先来先面试并且先结束的原则接受面试官们的考查. ...
- 浅谈JavaScript中的this
引言 JavaScript 是一种脚本语言,因此被很多人认为是简单易学的.然而情况恰恰相反,JavaScript 支持函数式编程.闭包.基于原型的继承等高级功能.本文仅采撷其中的一例:JavaScri ...
- FZU1894 单调队列
S - 1019 Time Limit:1500MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Sta ...
- 深入浅出 JavaScript 中的 this
在 Java 等面向对象的语言中,this 关键字的含义是明确且具体的,即指代当前对象.一般在编译期确定下来,或称为编译期绑定.而在 JavaScript 中,this 是动态绑定,或称为运行期绑定的 ...
- makefile中的自动化变量$@,$%,$
转自:http://www.2cto.com/os/201302/191344.html makefile中的自动化变量$@,$%,$ 自动化变量 模式规则中,规则的目标和依赖文件名代表了一 ...
- 【转】深入浅出 JavaScript 中的 this
Java 等面向对象的语言中,this 关键字的含义是明确且具体的,即指代当前对象.一般在编译期确定下来,或称为编译期绑定.而在 JavaScript 中,this 是动态绑定,或称为运行期绑定的,这 ...
- JavaScript 中的 this
JavaScript 语言中的 this 由于其运行期绑定的特性,JavaScript 中的 this 含义要丰富得多,它可以是全局对象.当前对象或者任意对象,这完全取决于函数的调用方式.JavaSc ...
- makefile中的自动化变量 【转】
转自:http://blog.chinaunix.net/uid-28458801-id-3495215.html 自动化变量 模式规则中,规则的目标和依赖文件名代表了一类文件名:规则的命令是对所有这 ...
随机推荐
- 1122. Hamiltonian Cycle (25)
The "Hamilton cycle problem" is to find a simple cycle that contains every vertex in a gra ...
- PHP程序员要看的书单
想提升自己,还得多看书!多看书!多看书! 下面是我收集到的一些PHP程序员应该看得书单及在线教程,自己也没有全部看完.共勉吧! Github地址:https://github.com/52fhy/ph ...
- bzoj2600 [Ioi2011]ricehub 双指针
题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=2600 题解 随便写一个比较简单的 two pointers 练习题. 首先答案肯定是一个原序列 ...
- Spring Boot整合tk.mybatis及pageHelper分页插件及mybatis逆向工程
Spring Boot整合druid数据源 1)引入依赖 <dependency> <groupId>com.alibaba</groupId> <artif ...
- [CF434D Div1] Tree
问题描述 给定一颗 n 个点的树,树边带权,试求一个排列 P,使下式的值最大 \[ \sum_{i=1}^{n-1}maxflow(P_i,P_{i+1}) \] 其中 maxflow(s, t) 表 ...
- TinyMCE不可编辑
1. 通过配置在控件初始化时设置 tinyMCE.init({ readonly : 1 }); 2.tinymce.activeEditor.getBody().setAttribute('cont ...
- Navicat 出现的[Err] 1146 - Table 'performance_schema.session_status' doesn't exist已解决
[Err] 1146 - Table 'performance_schema.session_status' doesn't exist已解决 刚刚接触MySQL,就往数据库添加数据,就遇到这个问 ...
- React使用的思考总结
1.事件处理中的this指针问题 在 react 中,用 class 声明一个组件,调用 class 中的方法时,如果该方法中有 this 且没有手动绑定 this 指针,则会发生 this 指向 u ...
- 【WINDOWS】设置路由表实现有线内网,无线外网
前提!!! 需要有线无线双网卡
- [BZOJ1964]hull 三维凸包:计算几何
分析 发现自己并不会计算几何. 所以先引用一下这位dalao的博客. 二维平面四个点求凸包面积->任选三个点面积之和/2 三维平面五个点求凸包体积->任选四个点体积之和/2 二维平面三个点 ...