
왜 instanceof HTMLElement가 false일까? - iframe과 다중 전역 객체 이슈
·
Javascript
❗ iframe에서 instanceof HTMLElement가 실패하는 이유자바스크립트에서 `instanceof HTMLElement`로 타입 검사를 할 때, 의외로 실패하는 경우가 있다.특히 iframe이나 window.open()으로 생성된 다른 전역 객체(global object)에서 DOM 요소가 만들어졌을 경우 그렇다. 자바스크립트에서 instanceof가 동작하는 방식을 살펴보면 다음과 같다.위 로직은 내부적으로 B.prototype이 a의 프로토타입 체인([[Prototype]])에 포함되어 있는지를 검사한다. 그런데 iframe이나 window.open() 등을 통해 생성된 문서(document)는 각각 독립적인 전역 객체(window)를 가지고 있으며, 그에 따라 내장 생성자들(Objec..