var x = 1;
var fn1 = function(){
print(this.x);
};
fn1();
//結果は1。thisはfn1オブジェクトではなくグローバルを指している。
print(fn1.x);
//undefined
var fn2 = function(x){
this.x = x;
}:
var F1 = new fn2(10);
var F2 = new fn2(5);
print(F1.x); //10
print(F2.x) //5
//fn2内のthisは新規オブジェクトを指している。
関数実行時にnewをつけると,関数内でのthisの意味が変わり,「新規オブジェクト」を指すようになる。
newをつけて実行される関数は,新規オブジェクトの生成メソッド(コンストラクタ)として機能する。
0 件のコメント:
コメントを投稿