ホームページ  >  記事  >  ウェブフロントエンド  >  Javascript トラップ ウィンドウ グローバル オブジェクト_JavaScript スキル

Javascript トラップ ウィンドウ グローバル オブジェクト_JavaScript スキル

WBOY
WBOYオリジナル
2016-05-16 18:58:13994ブラウズ

function Test(){
this.name='Test';
this.show=function(){
alert(name); name);//表示名
}
}
var test=new Test();//コンストラクターを通じてオブジェクトを作成します
test.show();//出力 2 と 'Test ' は、オブジェクト メソッドがプロパティにアクセスするときにこれを追加する必要があることを示します。アラート (名前);
alert(this.name);
}
Test();//
var test2(); 🎜 >test2.show();//Test と Test2 が出力されます。name の値は何ですか?
alert(name); show (); //出力 2, テスト; これはバグですか? >/ / 実行結果は ff と ie6 の両方で同じでした。バグではないようです。なぜでしょうか。
// 注: オブジェクト メソッドがそのオブジェクトのプロパティにアクセスするときは、 | これを追加する必要があります。 , デフォルトはウィンドウオブジェクトのメソッドです。
//関数を直接呼び出す場合、window を介してメソッドを呼び出すのと同じです。その場合、メソッド内の this は当然
//window オブジェクトとなり、this.name='Test' で属性を window に追加します。 object.
// メソッドのローカル スコープで name が定義されていない場合、alert(name) を呼び出すことは、alert(window.name) を呼び出すことと同じです。/*ああ、コードが混乱しています。 。これは重大な罠のようです! ! */

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。