Window: ÑвойÑÑво self
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since иÑÐ»Ñ 2015 г..
ÐоÑÑÑпное ÑолÑко Ð´Ð»Ñ ÑÑÐµÐ½Ð¸Ñ ÑвойÑÑво Window.self возвÑаÑÐ°ÐµÑ Ñамо окно в виде обÑекÑа WindowProxy. Ðно Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¸ÑполÑзовано вмеÑÑе Ñ ÑоÑеÑной ноÑаÑией на обÑекÑе window (как window.self) или пÑоÑÑо self. ÐÑеимÑÑеÑÑво доÑÑÑпа ÑеÑез self заклÑÑаеÑÑÑ Ð² Ñом, ÑÑо ÑакÑÑ Ð½Ð¾ÑаÑÐ¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ иÑполÑзоваÑÑ Ð² окÑÑжениÑÑ
, в коÑоÑÑÑ
Ð½ÐµÑ Ð¾Ð±ÑекÑа window, напÑÐ¸Ð¼ÐµÑ Web Workers. ÐÑполÑзование self даÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ Ð¾Ð±ÑаÑаÑÑÑÑ Ðº глобалÑÐ½Ð¾Ð¼Ñ Ð¾Ð±ÑекÑÑ Ð½Ðµ ÑолÑко в окÑÑжениÑÑ
где еÑÑÑ window (в Ñаком ÑлÑÑае self ÑквиваленÑно window.self), но Ñакже в конÑекÑÑе воÑкеÑаÑ
(Ñогда self бÑÐ´ÐµÑ ÑквиваленÑно WorkerGlobalScope.self).
ÐÑимеÑÑ
Ð ÑледÑÑÑем пÑимеÑе window.self Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð·Ð°Ð¼ÐµÐ½ÐµÐ½Ð¾ на window.
if (window.parent.frames[0] != window.self) {
// ÑÑо окно не ÑвлÑеÑÑÑ Ð¿ÐµÑвÑм в ÑпиÑке
}
ÐÑоме Ñого, когда код вÑполнÑеÑÑÑ Ð² акÑивном докÑменÑе бÑаÑзеÑа, обÑÐµÐºÑ window ÑвлÑеÑÑÑ ÑÑÑлкой на ÑекÑÑий глобалÑнÑй обÑекÑ, и поÑÑÐ¾Ð¼Ñ Ð²ÑÑ ÑледÑÑÑее ÑквиваленÑно:
const w1 = window;
const w2 = self;
const w3 = window.window;
const w4 = window.self;
// w1, w2, w3, w4 ÑавнознаÑнÑ, но ÑолÑко w2 бÑÐ´ÐµÑ ÑабоÑаÑÑ Ð² workers
СпеÑиÑикаÑии
| Specification |
|---|
| HTML > # dom-self-dev > |
СовмеÑÑимоÑÑÑ Ñ Ð±ÑаÑзеÑами
СмоÑÑиÑе Ñакже
WorkerGlobalScope.selfâ ÑÐºÐ²Ð¸Ð²Ð°Ð»ÐµÐ½Ñ Ð´Ð»Ñ'Worker.