1. 마지막 쉼표
이 코드에서처럼 마지막 쉼표에 주의하세요. 언어학적 관점에서 보면 좋을 것입니다(파이썬의 유사한 데이터 유형 사전이 이를 허용합니다). IE는 구문 오류를 보고하지만 언어가 명확하지 않습니다. 사람의 눈으로는 수천 줄의 코드만 스캔할 수 있습니다.
2. 이 코드의 참조는
다음과 같이 변경됩니다.
기대한 것만큼 좋지는 않습니다. 대답은 "JavaScript 규칙"이 아닙니다. MyObject.ClickHandler를 실행할 때 코드의 빨간색 줄에서 this에 대한 참조는 실제로 document.getElementById("theText")의 참조를 가리킵니다. 다음과 같이 해결할 수 있습니다.
본질적으로 이는 JavaScript 범위의 문제입니다. 살펴보면 하나 이상의 솔루션이 있음을 알 수 있습니다.
3. 신원 도용
JavaScript의 HTML ID와 동일한 변수 이름을 사용하지 마세요. 다음 코드:
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> 그리고 실제로 결과는 다음과 같습니다. "This_is a title"입니다. 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 = "This is a title".replace(/ /g,"_") <script> <BR> var fileName = "This is a title".replace(" ","_"); <BR></script>