Задать вопрос
Ninjacoder
@Ninjacoder
Познающий

Почему в методе alert можно опустить объект document, а в методе write нет?

Почему при использовании:

document.alert('Hello');

Объект document можно опустить?

alert('Hello');

Но при написании
document.write('Hello Habrahabr');

Опускать объект document нельзя, возникает ошибка:
Uncaught ReferenceError: write is not defined
  • Вопрос задан
  • 2477 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 2
nalomenko
@nalomenko
Руководитель отдела разработок в студии «Lava»
Потому-что alert — это метод глобального объекта window, внутри которого Вы работаете, даже не указывая ссылку на него. А write — метод объекта document, который находится внутри объекта window.
Ответ написан
Комментировать
Keyten
@Keyten
Alert - не в document, а в window.
И сам document - в window.
Как и все глобальные переменные. Всё, что в window - мы можем опустить (в браузере, т.к. это глобальная среда).

document.write('');
alert('');
// эквивалентно
window.document.write('');
window.alert('');


При большом желании можно использовать with:
with(document){
 write('');
}


Но использовать with считается плохо :)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
smanioso
@smanioso
Отмечайте ответы на свои вопросы!
Ответ написан
Комментировать
Keyten
@Keyten
Alert - не в document, а в window.
И сам document - в window.
Как и все глобальные переменные. Всё, что в window - мы можем опустить (в браузере, т.к. это глобальная среда).

document.write('');
alert('');
// эквивалентно
window.document.write('');
window.alert('');


При большом желании можно использовать with:
with(document){
 write('');
}


Но использовать with считается плохо :)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы