В общем вопрос такой, для тех кто не спит. Window выше чем документ? Почему нельзя убрать document и оставить window?

Ведь window это вся страница целиком. И можно было б так поступить window.getElementById('vasia').innerHTML = 'John';
Конечно можно наверно убрать document вот так самостоятельно. Var window = window.document или нет? Ну короче убрать document, оставить только window

Пробуй

Так как GetElementById() является методом document
У Window нет метода getElementById()
У Window есть не только document, но и, например, history у которой есть свои методы и так далее

P.s можно писать сразу document.getElementById('vasia').innerHTML = 'John';

Window - глобальный объект, ему нельзя присвоить другое значение,
window = window.document ничего не делает.
____
1)

Object.assign(window, document)

Попытка присвоить все свойства из document в window,

TypeError: Cannot assign to read only property 'matches' of object '#'
____
2)

for (let key in document) {
if (!(key in window)) {
console.log( key, "done" );
window[key] = document[key];
}
}

// Присваивает большой список…

window.querySelector("body")
>> Uncaught TypeError: Illegal invocation at anonymous

querySelector("body")
>> Uncaught TypeError: Illegal invocation at anonymous

Значит у методов document есть защита от дурака, чтобы наверняка закрепить их к объекту document)
____
3)

for (let key in document) {
if (!(key in window) && typeof document[key] == "function") {
window[key] = function() {
console.log(arguments);
return document[key].apply(document, arguments);
};
}
}

// При вызове свойств из window, слово window можно пропустить.
querySelector("body");
>> Arguments ["body", callee: ƒ, Symbol(Symbol.iterator): ƒ]
>> body style="background-color: rgb(255, 255, 255);">…/body>

Работает!) Аминь.
За использование этого заклинания могут сжечь на костре.
____

Если лень писать document, будет лень и querySelectorAll. Для всех этих методов можно написать мини-библиотеку и таскать её с собой, из серии

window._o = {
all: function(selector, root) {
return (root || document).querySelectorAll(selector);
},
first: function(selector, root) {
return (root || document).querySelector(selector);
},
};

console.log( _o.first("body"));
console.log( _o.all("div"));

Или уж взять jQuery.

Добавить комментарий