博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js中this的用法汇总
阅读量:5741 次
发布时间:2019-06-18

本文共 694 字,大约阅读时间需要 2 分钟。

hot3.png

1.在全局变量下,this没有任何外层对象下,this指向window对象

执行结果弹出【object Window】,当前this为window对象。(严格模式下是undefined,不做考虑)。

103629_551d_2680178.png

2.在函数内调用this,this指向调用该函数的对象。

104915_p3kk_2680178.png

弹出0,即this指向调用testThis()函数的全局对象。

3.作为对象属性的函数调用,this指向调用函数的对象,即函数所在的对象。

110002_ZupE_2680178.png

在function内部和person对象内部同时定义了testValue变量,在函数内部弹窗this.testValue可以看到this指向的是person对象。即this指向函数所在的对象

4.在构造函数中(通过new生成一个新的函数对象),this指向新的对象,而非原来的函数,也非window。

110851_bEMj_2680178.png

弹出的this.testValue不是0也不是1,而是undefined。说明this指向new生成的新对象,而不是原函数test和window。

5.在事件中的this,指向触发事件的dom对象。

				

 

111743_eHNU_2680178.png111843_OL59_2680178.png

 

触发了点击事件时,this指向触发事件的dom对象,this.name取到了该dom对象的name值。

 

结论:

1.如果this在函数内,则this总会指向调用函数的对象。

2.如果this在对象函数或者在对象内,则this总会指向该对象。

3.如果this在构造函数内,则this指向new的新对象,而非之前的函数本身。

4.this总会在js事件内指向触发事件的对象。

 

 

转载于:https://my.oschina.net/CrazyBoy1024/blog/1506428

你可能感兴趣的文章
TFS强制撤销某个工作区的文件签出记录
查看>>
EL表达式无法显示Model中的数据
查看>>
ps6-工具的基础使用
查看>>
灵活运用 SQL SERVER FOR XML PATH
查看>>
es 加磁盘扩容
查看>>
linux下使用过的命令总结(未整理完)
查看>>
时间助理 时之助
查看>>
英国征召前黑客组建“网络兵团”
查看>>
Silverlight 2.5D RPG游戏“.NET技术”技巧与特效处理:(十二)魔法系统
查看>>
PHP 命令行模式实战之cli+mysql 模拟队列批量发送邮件(在Linux环境下PHP 异步执行脚本发送事件通知消息实际案例)...
查看>>
pyjamas build AJAX apps in Python (like Google did for Java)
查看>>
Java not support java EE1.3
查看>>
LAMP环境搭建1-mysql5.5
查看>>
spring boot view override
查看>>
我的友情链接
查看>>
centos5.9使用RPM包搭建lamp平台
查看>>
关于C#面向对象2
查看>>
Javascript String类的属性及方法
查看>>
[LeetCode] Merge Intervals
查看>>
SharePoint 读取 Site Columns 的数据并绑定到DropdownList
查看>>