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 件のコメント:
コメントを投稿