메뉴 건너뛰기

관리자2019.08.20 17:22

그렇지 않습니다. 413페이지의 본문을 다시 읽어보세요.

다음 코드의 경우
myImg.src = "banana.png" (1)
myImg.onload = function() { (2)
var width = myImg.width; (3)
}

(1)의 코드가 실행될 때, 이미지 로딩을 시작합니다.
그런데 로딩의 속도가 빨라 (2)의 코드가 미처 실행되기 전에 로딩이 완료되어 load 이벤트가 발생할 수 있습니다.
현재 이렇게 발생한 load 이벤트를 받아 줄 리스너가 아직 없는 상태입니다. (2)의 코드 실행이 완료되지 않았기 때문에.

그러면 브라우저는 load 이벤트를 처리할 리스너가 있는 지 확인하고 없는 경우 load 이벤트를 제거합니다.
그 후 (2)의 코드가 실행되지만, load 이벤트는 이미 사라진 상태이므로
(1)의 과정에서 발생한 load 이벤트를 처리하지 못하게 되고
(3)의 코드는 실행되지 않게 됩니다.

그래서 자바스크립트 프로그램을 작성할 때, 어떤 경우든 이벤트 리스너의 등록이 먼지 이루어지도록 코딩하는 것이 매우 중요합니다.

파일 첨부

여기에 파일을 끌어 놓거나 파일 첨부 버튼을 클릭하세요.

파일 크기 제한 : 0MB (허용 확장자 : *.*)

0개 첨부 됨 ( / )
위로