javascript和java中this的區(qū)別
首先先寫個(gè)JS代碼:
? ? var?x?=?2;
function?test(){
this.x?=?1;
? ? ? ? document.write(this.x);
}
var?o?=?new?test();
document.write(x);?
輸出:1 2
我理解的是:this和o是兩個(gè)不同的對(duì)象,o是通過new新的對(duì)象,有新的內(nèi)存。不知道對(duì)不對(duì)?
后來又寫了一個(gè)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
按照上面的理解,應(yīng)該輸出 1 2才對(duì)。
難道是java和JS中this用法不一樣,懇請(qǐng)高手賜教
2015-03-07
JS代碼,默認(rèn)存在window對(duì)象,document.write(x);其實(shí)是window在調(diào)用,和O是兩個(gè)對(duì)象。理解了?
2015-03-07
x <==> o.x ?