关于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,以下三个变量在箭头函数之中也是不存在的,指向外层函数的对应变量:argumentssupernew.target

4. 大多数函数里的this指向为当前作用域上一级的对象

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

时间: 2024-10-05 11:29:39

关于this在不同使用情况表示的含义的相关文章

20170812 - 今日技能封装 - A

1 静态方法加载几次?一次,仅在初次加载类文件时加载一次(即第一次新建对象时) 2 类内方法需要加static吗?类外方法呢?一般而言,不是测试类(无主类) 如不定义,则在其他包中,需要定义一个对象才能调用 3 class aa{ } BOO xx(){ } bb.x() cc.row++上方代码分别是什么含义? 定义了一个aa的类: 定义了一个xx方法,其返回值为BOO类型, 对象bb调用了x方法 cc对象的row属性加1 4 判断返回值类型应看哪里?看方法名前类型,而不是看return 5

HTML之学习笔记(六)添加链接

html添加链接所用的标签为<a>标签 语法: 定义:从当前页面,跳转到指定页面或文件的一个标签            <a href="URL">热点文字</a>            URL (Uniform Resource Locator统一资源定位器)            协议://域名或地址/路径/文件名.后缀名?参数#标记            不写    在相应地址找寻文件打开            http   超文本传输协议  

【转】深入浅出 JavaScript 中的 this

Java 等面向对象的语言中,this 关键字的含义是明确且具体的,即指代当前对象.一般在编译期确定下来,或称为编译期绑定.而在 JavaScript 中,this 是动态绑定,或称为运行期绑定的,这就导致 JavaScript 中的 this 关键字有能力具备多重含义,带来灵活性的同时,也为初学者带来不少困惑.本文仅就这一问题展开讨论,阅罢本文,读者若能正确回答 JavaScript 中的 What ’s this 问题,作为作者,我就会觉得花费这么多功夫,撰写这样一篇文章是值得的. Java

20170812 - 今日技能封装 - Q

1 静态方法加载几次? 2 类内方法需要加static吗?类外方法呢? 3 class aa{ } BOO xx(){ } bb.x() cc.row++上方代码分别是什么含义? 4 判断返回值类型应看哪里? 5 定义成员变量的方式有几种?可以直接在成员变量下,方法外定义吗? 6 final关键字需要掌握什么?final可以修饰什么? 对应情况的含义分别是? 7 static修饰关键词需要掌握什么? 不同情况下的含义分别是什么? static修饰的成员变量存储在哪? 可否定义一个不赋值的静态成员

深入浅出 JavaScript 中的 this

本文来自:http://www.ibm.com/developerworks/cn/web/1207_wangqf_jsthis/ JavaScript 语言中的 this 由于其运行期绑定的特性,JavaScript 中的 this 含义要丰富得多,它可以是全局对象.当前对象或者任意对象,这完全取决于函数的调用方式.JavaScript 中函数的调用有以下几种方式:作为对象方法调用,作为函数调用,作为构造函数调用,和使用 apply 或 call 调用.下面我们将按照调用方式的不同,分别讨论

测试覆盖率工具:EclEmma

测试覆盖率工具:EclEmma 2016-08-26 目录 1 测试覆盖率实现技术2 EclEmma介绍3 EclEmma测试覆盖率指标4 EclEmma安装5 示例项目介绍  5.1 创建项目  5.2 用Coverage as TestNG Suite跑用例  5.3 跑后结果  5.4 导出HTML报告   5.5 导入导出合并覆盖率Session  5.6 测试引用的jar包的覆盖率 1 测试覆盖率实现技术 返回 Instrumentation:代码注入,在产品代码的关键位置插入统计代码

英语语法最终珍藏版笔记-8虚拟语气

虚拟语气 多数中国人对虚拟语气的理解是:虚拟语气表示说话人的愿望,是假设的,虚构的,与事实相反的,或者是不太可能的.这种理解固然是对的,但并不全面.在英语中,虚拟语气是个广义的概念,包括好几种句型和结构.假设,意愿等只是虚拟语气的两个方面. 英汉两种语言表达虚拟语气的方式差异: 而在英语中,虚拟语气是通过句子中谓语动词的特殊形式来表示的.这又一次证明动词在英语中的核心地位,又一次证明要学好英语语法,就要学好英语动词.由于虚拟语气是通过句子中谓语动词的特殊形式来表示的,因此,掌握虚拟语气中所使用的

面试前的准备---C#知识点回顾----03

经过一天的奔波,喜忧参半,不细表 再回看下标题,C#知识点回顾 再看下内容,数据库3NF 原谅我这个标题党 今天继续回忆 1.HTTP中Post和Get区别 这忒简单了吧,大家是不是感觉到兴奋了,长舒一口气了,终于出现了一个可以聊上10分钟的问题了. 根据HTTP规范,Get用于信息获取,而且应该是安全的和幂等的. 参数在URL后,以?分割,以&相连. 根据HTTP规范,Post表示可能修改服务器的资源请求.数据存在HTTP包中 以上最基本的得知道吧,重点可以聊的出现了,安全性. 详细请拜读:h

makefile中的自动化变量[email&#160;protected],$%,$

转自:http://www.2cto.com/os/201302/191344.html 自动化变量 模式规则中,规则的目标和依赖文件名代表了一类文件名:规则的命令是对所有这 一类文件重建过程的描述,显然,在命令中不能出现具体的文件名,否则模式规则失去 意义.那么在模式规则的命令行中该如何表示文件,将是本小节的讨论的重点. 假如你需要书写一个将.c 文件编译到.o 文件的模式规则,那么你该如何为gcc 书写 正确的源文件名?当然了,不能使用任何具体的文件名,因为在每一次执行模式规则时 源文件名都