下面都是个人理解以及查找的网上的资料,如有不对的地方请指正
This
this 始终指向调用它的对象 ,都没有对象调用时就指向window
另外就是this一般都是在function中,当不在function中的时候 一定是指向window的.
当在function中的时候,如果没有对象调用它还是指向window的
有人觉得this是根据上下文来确定的,反正我不明白这是什么意思 只要抓住一点 有没有对象调用它就好了,不管这个this隐藏的有深
在function中 当有对象调用这个function的时候 this就指向这个对象了......
在js中有一个神奇的方法,他就是call,apply他可以改变this 的指向;
还有一中情况就是类了, js中的类就是function吗,当new一个function的时候就会生成一个对象(也不一定啊 当在某些情况下还会是function 如构造类 现在我说的是基本的) this 就指向这个对象了
以上都是针对js语言来说明的 所说的对象也是原生(Native)对象
另外还有宿主(Host)对象 如dom元素
但是原理还是一样 如果是元素的方法调用的函数 函数里面的this指向dom元素
<input value="text" id="vv" type="button" onClick="alert(this.id)">
在使用this 中一些常常会遇见的错误 ( 先到这吧 改天在写)
潜套一各函数会改变this的指向,
解决办法 定义一个变量保存this
<script type="text/javascript">
var a = "quanju";
function test(){
this.a = "neibu";
var _self = this
(function(){
alert(_self.a)
})()
};
new test();
</script>