Я просто случайно забыл удалить console.log(parent) в моем эксперименте, и он записал Window.Я не знал, что есть глобальная переменная parent.Где это определено?Я использую последний Chrome.
console.log(parent)
Window
parent
Он определен в спецификации HTML , в частности здесь :
При получении родительский атрибут IDL должен запускать следующий алгоритм: Пусть windowProxy будет объектом этого окна WindowProxy объект. Если нет контекст просмотра с windowProxy в качестве объекта WindowProxy, затем возвращает ноль. Пусть context будет контекст просмотра . Если context является дочерним контекстом просмотра другого контекста просмотра parent ,затем вернуть родительский объект WindowProxy. В противном случае context должен быть контекстом просмотра верхнего уровня .Возврат context WindowProxy объекта.
При получении родительский атрибут IDL должен запускать следующий алгоритм:
Пусть windowProxy будет объектом этого окна WindowProxy объект.
WindowProxy
Если нет контекст просмотра с windowProxy в качестве объекта WindowProxy, затем возвращает ноль.
Пусть context будет контекст просмотра .
Если context является дочерним контекстом просмотра другого контекста просмотра parent ,затем вернуть родительский объект WindowProxy.
В противном случае context должен быть контекстом просмотра верхнего уровня .Возврат context WindowProxy объекта.
См. Также MDN .
По существу, parent является родителем окна (например, это фрейм или iframe), если оно есть, или самим окном, если его нет.
Есть также связанные, но разные, opener ( MDN | spec ).
opener