人を損得を知る鏡として使うなら、この文章は非常に理にかなっているように思えます。 デモ 1: これがグローバル関数の場合、この関数を呼び出す必要がある場合、関数内で定義されたさまざまなプロパティやメソッドに関数の外部からアクセスできます。 。 コードをコピー コードは次のとおりです: <br>//関数 <br>function a() { <br>if (this == window) { <br>alert("this == window"); <br> で使用しますthis.fieldA = "私はフィールドです"; <br>this.methodA = function() { <br>alert("私は関数です "); <br>} <br>} <br>} <br> a(); // a メソッドが呼び出されない場合、内部で定義されたプロパティは使用できません。 <br>methodA(); <br><br> <br>デモ 2: </div>new を使用してオブジェクトをインスタンス化する場合、これは window オブジェクトと等しくありません。これは関数 a のインスタンスを指します <br><br><br> <div class="codetitle"> <span> コードをコピーします <a style="CURSOR: pointer" data="6121" class="copybut" id="copybut6121" onclick="doCopy('code6121')"><u></u> コードは次のとおりです。 </a></span> </div><script type="text/javascript"> <div class="codebody" id="code6121">//このパート 2 を関数 <br> で使用します function a() { <br>if (this == window) { <br>alert("this == window") <br>} <br>else { <br> alert("this != window") ; <br>} <br>this.fieldA = "私はフィールドです" <br>var b = new <br>alert(b) .fieldA); <br>< /script> <br><br> <br>デモ 3: <br>これを使用して、ソース オブジェクトのインスタンスを取得できます。プロトタイプチェーンを通じて取得 </div> <br><br><br><div class="codetitle">コードをコピー<span><a style="CURSOR: pointer" data="84094" class="copybut" id="copybut84094" onclick="doCopy('code84094')"><u> コードは次のとおりです:</u></a> </span><スクリプトタイプ="text/javascript"> </div>//これを関数 3 で使用します<div class="codebody" id="code84094">function a() { <br>this.fieldA = "私はフィールドです" <br>var privateFieldA = "私' m a var"; <br>} <br>a.prototype.ExtendMethod = function(str) { <br>alert(str " : " this.fieldA); <br>alert(privateFieldA); //エラー<br>}; <br>var b = new a(); <br> b.ExtendMethod("プロトタイプから"); <br><br> <br> デモ 4: <br>関数を直接参照しているか、関数をインスタンス化しているかに関係なく、クロージャは関数内でこれを返します。関数内のすべてのポイントはウィンドウ <br> </div> <br><br><br> コードをコピーします <div class="codetitle"> <span><a style="CURSOR: pointer" data="23615" class="copybut" id="copybut23615" onclick="doCopy('code23615')">コードは次のとおりです: <u></u> </a><script type ="text/javascript"> </span>//関数 </div>function a() { <div class="codebody" id="code23615">alert(this) でこの 4 つを使用します。 == ウィンドウ); <br>var that = this; <br> var func() { <br>alert(this == window); <br>戻り関数 <br>} <br>var b = a() <br>b(); <br>c(); <br><br> <br>デモ 5: <br> は HTML で使用され、通常は要素自体を表します <br><br><br><br><br>コードをコピー </div> <br> <br> コードは次のとおりです。 <br><div class="codetitle"> <span>< div onclick="test(this)" id="div">Click Me</div> <a style="CURSOR: pointer" data="5052" class="copybut" id="copybut5052" onclick="doCopy('code5052')"><script type= "text/javascript"> <U>関数 test(obj) { </U>alert (obj) </a>} </span></div> <div class="codebody" id="code5052">デモ 6: <BR>IE と Firefox (Chrome) でイベントを登録します。これはそれぞれウィンドウと要素自体を指します<BR><BR><BR><BR><BR>コードをコピー<BR></div><BR> コードは次のとおりです次のように:<BR><BR> <div class="codetitle"><div id="div">クリックしてください</div> <span><script type="text/javascript"> .getElementById("div"); <a style="CURSOR: pointer" data="87299" class="copybut" id="copybut87299" onclick="doCopy('code87299')">if (div.attachEvent) { <u>div.attachEvent( "onclick", function() { </u>alert(this == window); </a>var e =イベント; </span>alert(e.srcElement == this); </a></span> </div>} <div class="codebody" id="code87299">if (div.addEventListener) { <br>div.addEventListener("click", function(e) { <br>alert(this == window); <br>e = e; <br>alert(e .target == this), <br>} <br></ script> <br><br> <br>上記は、JavaScript でのさまざまなアプリケーション シナリオをまとめたものです。他の状況もあるかもしれません。後で見つけたら追加します。</div>