今天在学习javascript的时候碰到了this,感觉它跟java里的有点不一样。然后上网查了一下,参考了这篇文章,JavaScript中this关键字详解,发现它们之间的区别主要是这样:
java:
public class TestThisInJava { public static void main(String[] args) {
new B().showName();//a
}
}
class A {
String name = "a";
public void showName() {
System.out.println(this.name);
}
}
class B {
String name = "b";
public void showName() {
new A().showName();
}
}
javascript:
var a= {
name: "a",
showName: function(){
alert(this.name);
}
}; var b = {
name: "b",
showName: a.showName
} b.showName(); //a
可以看出在java中,this声明在哪里就this就指代声明处的对象,而在javascript中,this最上层是由谁调用的,this就指代谁。