Как обратиться к глобальному пространству имен в JS - PullRequest
0 голосов
/ 03 августа 2011

Какая переменная для глобального пространства имен JS имеет ссылку и могу ли я ее изменить?(отказ от ответственности да я знаю, что это ужасная практика, если я могу)

Ответы [ 4 ]

1 голос
/ 03 августа 2011

В JavaScript, который не работает в строгом режиме ECMAScript 3.1, вы можете ссылаться на глобальный объект, используя ключевое слово this, но только если не выполняете код внутри функции, которая имеет контекст объекта.

// In global scope:
alert(this.Math === Math);  //-> true

function test() {
    alert(this.Math === Math);
}

test();     //-> true

var someObj = {};
test.call(someObj); //-> false, `this` is `someObj`

В браузерах, как уже упоминалось в других ответах, объект window также является глобальным объектом.

alert(this === window); //-> true
alert(this.alert === window.alert); //-> true
1 голос
/ 03 августа 2011

Глобальное пространство имен / объект для Javascript в браузере: window.Насколько я знаю, вы можете изменить его, но не надо.

РЕДАКТИРОВАТЬ: Я ошибся.К счастью, вы не можете изменить его (например, window = {}; не имеет никакого эффекта, по крайней мере, в Chrome).

1 голос
/ 03 августа 2011

В браузере он доступен через window.

alert(window.document === document);    // true

Я только что попытался изменить его, используя назначение в Google Chrome, но на удивление это не дало эффекта.

0 голосов
/ 03 августа 2011

Глобальное пространство имен имеет следующие имена:

window // чаще всего встречается

top // в некоторых случаях

self

parent // в некоторых случаях

this // в некоторых случаях

...