Объекты хоста, предоставляемые браузером, ведут себя так, что не ограничены семантикой языка. То есть, document
выглядит как объект JavaScript, но это не так. Это часть среды выполнения.
Спецификация JavaScript написана в терминах различных внутренних описаний метода. Объекты хоста, такие как window
и document
, имеют специальные версии этих внутренних методов. Таким образом, среда выполнения следует за спецификацией того, как работает процесс присваивания =
, но внутренний метод [[Put]]
является просто особым.