what's this? 浅谈js中this的指向问题
来源:互联网 发布:大华电子秤数据下传 编辑:程序博客网 时间:2024/05/21 09:20
刚刚学习js的朋友可能和我一样,看到代码中的this总是一脸懵逼,不知道this到底指向谁。经过一段时间的了解,我想跟大家分享下自己的理解。
何时出现this
函数在调用的时候,会自动获得两个特殊变量:this和arguments,所以,函数可以调用this变量。
this指向谁?
通过一段时间的练习,我觉得可以总结为一句话:this指向他所在函数的作用域对象。如果函数是定义在全局作用域的,那么this指向window,如果函数被某个自定义对象调用,那么this就指向该对象。下面我们通过几个场景进行理解:
场景一:定义在全局作用域
结果:function test(){alert(this); } test();
场景二:被某个对象调用
结果:var O = {f : function(){ alert(this);}}O.f();
场景三:闭包
var object = {getThis : function(){ return function(){ return this; }}}alert(object.getThis()());
结果:
var object = {getThis : function(){ var that = this; return function(){ return that; }}}alert(object.getThis()());
结果:
对场景三的解释说明:大家都清楚闭包的一个特点是可以保留外部函数的变量对象,在场景三的第二个里,我们使用that保存了this的值,this指向object对象,所以that也指向object对象。
总结
其实this的问题并不复杂,我们只要记住,this指向函数所在作用域的作用域对象,然后平时多练习,就可以知道this指向谁了。
0 0
- what's this? 浅谈js中this的指向问题
- js中this关键字的指向问题
- 理解js中this的指向问题
- js中this的指向问题
- js中this指向问题
- js中this指向问题
- js中this的指向
- js中this的指向
- js中this的指向
- js中this的指向
- js中 this 的指向
- js中this的指向
- js中this的指向
- JS中this的指向
- Js中this的指向
- js this指向问题
- js this指向问题
- JS中this指向
- EhCache缓存详解一
- FL2440开发板的烧录
- 【Codeforces Gym
- 动态规划--三角形最佳路径
- 正则regular
- what's this? 浅谈js中this的指向问题
- spring上传
- NBUT 1221 Intermediary(Bellman-Ford)(最短路三进制状态压缩)
- 【ML】48个机器学习开源项目链接
- STL源码剖析学习笔记之具备次配置力(sub-allocation)的SGI空间配置器
- JAVA-2.4-鸡兔同笼
- hdu 1892 See you~
- Android App耗电发热分析
- Linux面试题集锦三