#javascript #html #dom
#javascript #HTML #dom
Вопрос:
Допустим, у меня есть некоторый случайный код, как показано ниже:
<script>
this.fn = (function() {
var element = document.createElement("div");
element.innerHTML = Object.keys(self)
"<br />" Object.keys(window)
"<br />" Object.keys(top);
self["document"].body.appendChild(element);
return arguments.callee;
})();
</script>
Это связано не только с приведенным выше кодом, в чем разница между:
Self
, Document
, This
, Top
, Window
?
Каков наилучший вариант использования для каждого из них?
Ответ №1:
self
amp; window
: Они оба ссылаются на текущее окно (или фрейм), где расположен и запущен скрипт. Смотрите здесь подробности и примеры.
document
: Ссылается на контейнер DOM, предоставляя вам доступ к заголовкам и основному содержимому. Смотрите здесь подробности и примеры.
this
: Ссылается на объект JavaScript, под которым выполняется код. Код JavaScript и функции, написанные непосредственно внутри <script>
тегов, имеют this
ссылку на window
. Если функции объекта необходимо вызвать метод в том же объекте, используйте this.method_name();
.
top
: Ссылается на самый верхний window
объект в иерархии фреймов. Если вы используете фреймы и хотите управлять всем окном набора фреймов изнутри подфрейма, используйте top
, например top.close();
, чтобы закрыть текущее окно, содержащее все фреймы.