darsga qaytish

Ierarxiyada "document" qayerda?

muhimlik: 4

document qaysi sinfga tegishli?

Uning DOM ierarxiyasidagi o’rni qanday?

U Node yoki Elementdan, yoki ehtimol HTMLElementdan meros oladimi?

Document Sinfini Aniqlash

Qaysi sinfga tegishli ekanligini uni chiqarib ko’rish orqali bilishimiz mumkin:

alert(document); // [object HTMLDocument]

Yoki:

alert(document.constructor.name); // HTMLDocument

Demak, document – bu HTMLDocument sinfining namunasi (instance).

Uning ierarxiyadagi o’rni qanday?

Ha, biz spetsifikatsiyani ko’rib chiqishimiz mumkin edi, lekin qo’lda aniqlash tezroq bo’lardi.

__proto__ orqali prototip zanjirini ko’rib chiqamiz.

Ma’lumki, sinf usullari konstruktorning prototypeida joylashgan. Masalan, HTMLDocument.prototypeda hujjatlar uchun usullar mavjud.

Shuningdek, prototype ichida konstruktor funksiyasiga havola mavjud:

alert(HTMLDocument.prototype.constructor === HTMLDocument); // true

Sinf nomini satr sifatida olish uchun constructor.namedan foydalanishimiz mumkin. Buni butun document prototip zanjiri uchun, Node sinfigacha qilamiz:

alert(HTMLDocument.prototype.constructor.name); // HTMLDocument
alert(HTMLDocument.prototype.__proto__.constructor.name); // Document
alert(HTMLDocument.prototype.__proto__.__proto__.constructor.name); // Node

Mana ierarxiya.

Shuningdek, console.dir(document) yordamida obyektni tekshirib, __proto__ni ochish orqali bu nomlarni ko’rishimiz mumkin. Konsol ularni ichki tarzda constructordan oladi.