<script>
/*
*解析器在调用函数,每次都会向函数内部传递进一个隐含的参数
* 这个隐含的参数就是this.this和a,b没区别,只不过是浏览器传递过来的。this指向的是一个对象
* 这个对象我们称为函数执行的上下文对象 window。
* 根据函数的调用方式不同,this会指向不同的对象
* 1、以函数的形式调用时,this永远都是window。如: fun();
* 2、以方法的形式调用时,this就是调用方法的对象
*/
function fun(){
//console.log("a = "+a+",b = "+b);
console.log(this);
}
//fun();
//创建一个函数
var obj = {
name:"孙悟空",
sayName:fun
};
var obj2 = {
name:"沙和尚",
sayName:fun
}
// console.log(obj.sayName == fun);//true
obj.sayName();//object
//fun();//window
</script>
<script>
/*
*this 的补充
*
*/
//创建一个name变量
var name = "全局";
function fun(){
console.log(this.name);
}
var obj = {
name:"孙悟空",
sayName :fun
};
var obj2= {
name:"沙和尚",
sayName :fun
};
fun();
//我们希望调用obj.sayName()时可以输出obj的名字
// obj2.sayName();
</script>