메뉴 건너뛰기
bananaImg.src = "banana.png" 나 myImg.src = bananaImg.src; 의 처리에 대해 집중해보죠. 지금부터 설명하는 것은 어디까지나 추측입니다.
이 문장 형식을 그대로 보면, 독자가 질문한 것처럼 myImg 객체의 src에 문자열 형식으로 파일 경로명, "banana.ong"가 저장되는 것이죠.
하지만, myImg 객체의 src에 이미지의 URL이 지정되면 그 이미지를 화면에 출력하는것으로 그 시맨틱(의미)가 정해져 있는 것입니다.
이 시맨틱 대로 작동하도록 자바스크립트 엔진이 구현되어 있습니다. 구현은 자바스크립트 엔진마다 다를 수 있습니다.
하지만, 예상할 수 있는 구현 시나리오는 다음과 같습니다.
bananaImg.src = "banana.png"
문을 처리할 때, "banana.png"를 로딩시키는 작업을 먼저하고
이미지 이름 "banana.png"와 로딩된 이미지 버퍼의 주소를 내부에 기억(해시테이블이나 해시맵을 사용하여)합니다.
또한 bananaImg 객체의 src 프로퍼티에 문자열로 "banana.png"를 저장해둡니다.
이제, myImg.src = bananaImg.src; 를 처리하면, myImg.src의 값이 문자열 "banana.png"가 되고,
시맨틱으로 정해진 것처럼, myImg DOM 객체의 이미지를 화면에 출력하기 위해,
해시테이블에서 src 프로퍼티에 저장된 이미지 이름("banana.png")으로 이미지 버퍼를 찾고 이미지 버퍼에 저장된 이미지를화면에 출력할 것 같습니다.
그런데 만일 myImg.src의 값이 ""이거나 null 이면 해시테이블에서 이미지 이름을 찾을 수 없기 때문에, 오류가 나겠지요.
뭐 이런 식으로 작동할것 같습니다. 하지만, 구체적으로 자바스크립트 엔진의 코드를 분석해보기 전에는 어떻게 구현되는지 명확히 알 수는 없습니다.
여기에 파일을 끌어 놓거나 파일 첨부 버튼을 클릭하세요.
파일 크기 제한 : 0MB (허용 확장자 : *.*)
파일 업로드 중... (0%)
브라우저를 닫더라도 로그인이 계속 유지될 수 있습니다.로그인 유지 기능을 사용할 경우 다음 접속부터는 로그인할 필요가 없습니다.단, 게임방, 학교 등 공공장소에서 이용 시 개인정보가 유출될 수 있으니 꼭 로그아웃을 해주세요.
bananaImg.src = "banana.png" 나
myImg.src = bananaImg.src;
의 처리에 대해 집중해보죠. 지금부터 설명하는 것은 어디까지나 추측입니다.
이 문장 형식을 그대로 보면, 독자가 질문한 것처럼 myImg 객체의 src에 문자열 형식으로 파일 경로명, "banana.ong"가 저장되는 것이죠.
하지만, myImg 객체의 src에 이미지의 URL이 지정되면 그 이미지를 화면에 출력하는것으로 그 시맨틱(의미)가 정해져 있는 것입니다.
이 시맨틱 대로 작동하도록 자바스크립트 엔진이 구현되어 있습니다. 구현은 자바스크립트 엔진마다 다를 수 있습니다.
하지만, 예상할 수 있는 구현 시나리오는 다음과 같습니다.
bananaImg.src = "banana.png"
문을 처리할 때, "banana.png"를 로딩시키는 작업을 먼저하고
이미지 이름 "banana.png"와 로딩된 이미지 버퍼의 주소를 내부에 기억(해시테이블이나 해시맵을 사용하여)합니다.
또한 bananaImg 객체의 src 프로퍼티에 문자열로 "banana.png"를 저장해둡니다.
이제, myImg.src = bananaImg.src; 를 처리하면, myImg.src의 값이 문자열 "banana.png"가 되고,
시맨틱으로 정해진 것처럼, myImg DOM 객체의 이미지를 화면에 출력하기 위해,
해시테이블에서 src 프로퍼티에 저장된 이미지 이름("banana.png")으로 이미지 버퍼를 찾고 이미지 버퍼에 저장된 이미지를화면에 출력할 것 같습니다.
그런데 만일 myImg.src의 값이 ""이거나 null 이면 해시테이블에서 이미지 이름을 찾을 수 없기 때문에, 오류가 나겠지요.
뭐 이런 식으로 작동할것 같습니다.
하지만, 구체적으로 자바스크립트 엔진의 코드를 분석해보기 전에는 어떻게 구현되는지 명확히 알 수는 없습니다.