一、什么是上下文this,this有什么用?
将参数传入函数的手段,通常是通过函数传参,而上下文this是参数进入函数内部的另外一个手段。
二、函数上下文的规则(this是谁?)
规则1、函数直接用圆括号调用,没有任何人打点调用它,函数上下文是window对象。
<script type="text/javascript">
function fun(){
alert(this.a + this.b);
}
var a = 3;
var b = 4;
fun();
</script>
首先我们要知道,全局变量是window的属性。即你一旦var出了全局变量a和b,此时window对象就有a属性、b属性了。
然后,我们说规则1是,当函数用圆括号调用的时候,函数的上下文是window。
规则2、对象打点调用函数,函数的上下文是对象
注意:一个函数的上下文,不取决于如何定义的,而是取决于如何被调用,函数没有被调用之前,谁也不知道this是谁。
当函数是被对象打点调用的,此时函数的上下文就是这个对象。
<script type="text/javascript">
function fun(){
alert(this.a + this.b);
}
var obj = {
a : 8,
b : 9,
fun : fun
}
obj.fun();
<