java和javascript中this区别的浅探讨

时间:2021-09-09 17:19:09

今天在学习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就指代谁。