javascript和java中this的區別
首先先寫個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用法不一樣,懇請高手賜教
2015-03-07
JS代碼,默認存在window對象,document.write(x);其實是window在調用,和O是兩個對象。理解了?
2015-03-07
x <==> o.x ?