老生常谈JavaScript中的this关键字
相对于很多其他的面向对象语言来说,this代表的就是当前对象。例如Java中的this就是编译期间确定的。而在JavaScript中,this是动态绑定,或称为运行期绑定的
Java中的this
在以下代码中。this代表的就是p对象。
publicclassTest{
publicstaticvoidmain(String[]args){
Personp=newPerson("zmt",30);
System.out.println(p.name);
}
}
classPerson{
Stringname;
intage;
Person(Stringname,intage){
this.name=name;
this.age=age;
}
}
JavaScript中的this
JavaScript中的this含义要丰富得多,它可以是全局对象、当前对象或者任意对象,这完全取决于函数的调用方式。JavaScript中函数的调用有以下几种方式:作为对象方法调用,作为函数调用,作为构造函数调用,和使用apply或call调用。下面我们将按照调用方式的不同,分别讨论this的含义。
1.作为普通函数调用
在普通函数里,this代表的是window对象
functiontest(){
alert(this);
}
test();
2.作为构造函数调用
作用构造函数调用的时候,它代表的是当前对象。这个就和Java一样了。
functionPerson(name,age){
this.name=name;
this.age=age;
}
以上所述是小编给大家介绍的JavaScript中的this关键字,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!