메뉴 건너뛰기

관리자2020.08.23 20:13

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개 첨부 됨 ( / )
위로