在编译Js代码的时候,解析器在调用函数每次都会像函数内部传递进一个隐含的参数,这个隐含的参数就是this,this指向的是一个对象,这个对象我们成为函数执行的上下文对象,它根据函数的调用方式的不同,this会指向不同的对象:
1.以函数方式调用时,this永远都是window;
2.以方法的方式调用时,this就是调用方法的那个对象。
this·关键字和c/c++中发生了一些区别,指向的东西不会一直的不变,但其实这么说也不严谨!!!相似点还是有不少的。
举个this在JS程序中灵活应用的例子:为了打印出不同对象的相同属性名的属性值
var kuqi="小兔";
function sayName(){
document.write(this.kuqi+"</br>");
}
sayName();
var a={
kuqi:"小老虎",
say:sayName
}
a.say();
var b={
kuqi:"小鲤鱼",
say:sayName
}
b.say();