首先先写个JS代码:
var x = 2;
function test(){
this.x = 1;
document.write(this.x);
}
var o = new test();
document.write(x);
输出:1 2
我理解的是:this和o是两个不同的对象,o是通过new新的对象,有新的内存。不知道对不对?
后来又写了一个java代码:
public class ThisDemo {
int x=2;
public ThisDemo(){
this.x=1;
System.out.println(this.x);
}
public static void main(String[] args) {
ThisDemo tt=new ThisDemo();
System.out.println(tt.x);
}
}
输出:1 1
按照上面的理解,应该输出 1 2才对。
难道是java和JS中this用法不一样,恳请高手赐教
JS代码,默认存在window对象,document.write(x);其实是window在调用,和O是两个对象。理解了
var o = new test(); document.write(x);
ThisDemo o=new ThisDemo(); System.out.println(o.x);
x <==> o.x ?