JSメソッド書き換え


まず、スレ主はこの点を理解してください。
1.HTMLはブラウザで順番に解析されています。以下の例を見ます。
HTMLコード

   
     
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" > < html xmlns ="http://www.w3.org/1999/xhtml" > < head > < script type ="text/javascript" src ="1.js" /> < script type = " text/javascript " > function fnTest(){ alert( " show me second! " ); } </ script > </ head > < body > < input type ="button" value ="clickMe" onclick ="fnTest()" /> </ body > </ html >
先にを導入しました。
JScript code

   
     
function fnTest(){ alert( " show me first! " ); }
この時clickMeをクリックしてポップアップしたのはshow me secondです。先に説明しないでください。次の例を見ます。
HTMLコード

   
     
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" > < html xmlns ="http://www.w3.org/1999/xhtml" > < head > < script type ="text/javascript" > function fnTest(){ alert( " show me second! " ); } </ script > < script type ="text/javascript" src ="1.js" /> < / head> < body > < input type = " button " value = " clickMe " onclick = " fnTest() "/ > < / body> < / html>
<script type=「text/javascript」src=「1.js」/』は後に導入されたものとして、以下の通りです。
JScript code

   
     
function fnTest(){ alert( " show me first! " ); }
この時clickMeをクリックしてポップアップしたのはshow me firstです。
これはよく分かります。ブラウザが順序で解析したので、先に作成したfnTest()は後に作成したfnTest()によって上書きされました。なぜですか?私たちは第二点を見に来ました。
2.javascript方法は実は引用です。
JScript code

   
     
function fnTest(){ alert( " show me first! " ); } // 相当于: var fnTest = new Function( " alert('show me first!') " ); function fnTest(){ alert( " show me second! " ); } // 相当于: var fnTest = new Function( " alert('show me second!') " ); // 那么结果是: var fnTest = new Function( " alert('show me first!') " ); var fnTest = new Function( " alert('show me second!') " );
最後にバックボタンで呼出しします。まず作成した方法は呼び出されません。show me secondをもらいます。