1. 最後のコンマ
このコードのように、最後のコンマに注意してください。これは言語学的観点からは適切なはずです (Python の同様のデータ型の辞書ではこれが可能です)。 IE は構文エラーを報告しますが、言語は不明瞭です。人間の目で確認できるのは数千行のコードだけです。
2. this の参照は、次のコードのように
を変更します:
ご想像のとおり、答えは「JavaScript ルール」ではありません。 MyObject.ClickHandler を実行すると、コードの赤い行で、this の参照は実際には document.getElementById("theText") の参照を指します。これは次のように解決できます:
本質的に、これは JavaScript スコープの問題です。調べてみると、解決策が複数あることがわかります。
3. ID 泥棒
JavaScript で HTML ID と同じ変数名を使用しないでください。次のコード:
IE はオブジェクト未定義エラーを報告します。私が言えるのは、IE は最悪です。
4. 文字列は、次のように最初に一致する
のみを置き換えます:
<script> <BR> var theObj = { <BR> city : "Boston", <BR> state : "MA", <BR> } <BR></script> <script> <BR>var MyObject = function () { <BR> this.alertMessage = "Javascript rules"; <BR> this.ClickHandler = function() { <BR> alert(this.alertMessage ); <BR> } <BR>}(); <BR>document.getElementById(”theText”).onclick = MyObject.ClickHandler <BR></script> JavaScript では、String.replace の最初のパラメータは正規表現である必要があります。したがって、正しいアプローチは次のとおりです。 <script> <BR>var MyObject = function () { <BR> var self = this; <BR> this.alertMessage = “Javascript rules”; <BR> this.OnClick = function() { <BR> alert(self.value); <BR> } <BR>}(); <BR>document.getElementById(”theText”).onclick = MyObject.OnClick <BR></script><script> <BR> TheButton = get("TheButton"); <BR></script>var fileName = "これはタイトルです".replace(/ /g,"_"); <script> <BR> var fileName = "This is a title".replace(" ","_"); <BR></script>