JavaScript 中 this用法详解
1、JavaScript中,执行代码必须放入函数中,如果没有显示写入函数中,则代码会自动被放入window的某个成员函数中;
2、JavaScript的函数都是成员函数,一定属于某个对象,如果没有显示指定此对象,那么这个函数就属于window对象;
3、 JavaScript函数的执行方式有三种,一是作为成员函数来调用,此时函数体内的this指向函数所属对象;二是作为构造函数来调用,此时函数体内的 this指向通过此构造函数新创建的对象;三是通过apply或call调用,此时函数体内的this是被参数控制的。
4、this的指向与定义函数的语法与位置无关,只与函数被调用的方式有关。
以上是从 http://www.2cto.com/kf/201208/149899.html 中copy的总结部分的文本。对于初学JS的我来说好比牛顿发现了新大陆 = =
------------------------------------------------------------------------------------------------------------------------------------
先是将所有JS的执行代码归入函数,若没有明确的函数,则会自动被放入window的某个成员函数
所有JS代码归入函数后,再将函数归入对象。JS所有函数都是成员函数,所有一定属于某对象。若没有,则属于Window对象。
eg: document.write("xxx"); ---> function x(xx){document.write("xxx");} ---> window(){ x(xx) }
全部规整完之后,就可以很好的讨论this的上下文了。
首先要明确:This的执行上下文是在运行过程中确定的,而作用于则是在定义的时候就确定好了的。
然后就找上述说的,一是作为成员函数来调用,此时函数体内的this指向函数所属对象;二是作为构造函数来调用,此时函数体内的this指向通过此构造函数新创建的对象;三是通过apply或call调用,此时函数体内的this是被参数控制的。
以上 2016-01-10 14:55:39