내가 다음 코드 실행에서 이상한 결과를 경험하고이 코드를 실행자체 호출 익명 함수 바로 위에 배치 될 때 함수가 변수에 할당되는 이유는 무엇입니까?
var saySomethingElse, v;
// This function will not run when the nameless function runs, even if v and saySomethingElse are commented out.
function saySomething() {
alert("something");
}
// When v is uncommented, this function will run when the nameless function below runs..
saySomethingElse = function() {
alert("something else");
}
//v = "by uncommenting me, saySomethingElse will no longer be called.";
(function() {
if (v) {
alert("Now things are working normally.")
}
alert("This alert doesn't happen if v is commented out.");
})();
를, 하단에있는 익명 함수는 대신 자신 만의 콘텐츠의 saySomethingElse
를 호출하지만 v
가 주석 처리되지 않으면 예상대로, 모든 작동 : saySomethingElse
이 실행되지 않고 익명 함수가 자체 콘텐트를 실행합니다. 나는 이것이 정상적인 행동 일 것이라고 기대하지만, 나는 설명을 찾고있다. 왜 이런 일이 일어나는 지 아는 사람이 있습니까?
체크 아웃 바이올린 : working example 당신은 당신의 익명 함수 saySomethingElse
당신은 항상 제대로 세미콜론으로 익명 함수를 종료한다 끝에 세미콜론을 추가해야
콘솔을 사용하는 방법을 배우는 것이 좋습니다 –