扫码关注官方订阅号
为什么this在不同的情况下得到的值不同
/**///这样的结构 var a = document.getElementsByClassName('whh'); for(var i=0;i
ringa_lee
普通函数执行this指向全局对象,对象方法执行this指向该对象
https://developer.mozilla.org...https://developer.mozilla.org...
要说明白this,就要先说明白函数(设函数为f())。
每一个函数在执行的时候,都关联着一个上下文对象(可以理解为在哪个对象上执行该函数,这里记为obj)。
其中调用方式有很多, 比如:
obj.f(): 最常用的使用点操作符调用函数
new f(): 创建一个新的obj, 并且调用函数
f.call() 和 f.apply(): 指定某一个特定的obj(第一个参数)
另外,如果没有指定上下文对象的话,比如直接调用f(),那么系统会使用globle,而在浏览器环境中,这个globle就是window对象。
这个上下文对象,就是this。
贴个链接把 http://zonxin.github.io/post/...
二楼正解,如果是一个纯函数里面的this,要看谁调用,this就会指向谁,不过在定时器中,this指向的却是window
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
普通函数执行this指向全局对象,对象方法执行this指向该对象
https://developer.mozilla.org...
https://developer.mozilla.org...
要说明白this,就要先说明白函数(设函数为f())。
每一个函数在执行的时候,都关联着一个上下文对象(可以理解为在哪个对象上执行该函数,这里记为obj)。
其中调用方式有很多, 比如:
obj.f(): 最常用的使用点操作符调用函数
new f(): 创建一个新的obj, 并且调用函数
f.call() 和 f.apply(): 指定某一个特定的obj(第一个参数)
另外,如果没有指定上下文对象的话,比如直接调用f(),那么系统会使用globle,而在浏览器环境中,这个globle就是window对象。
这个上下文对象,就是this。
贴个链接把 http://zonxin.github.io/post/...
二楼正解,如果是一个纯函数里面的this,要看谁调用,this就会指向谁,不过在定时器中,this指向的却是window