2013-06-05 2 views
0

Я хотел бы получить доступ ко всем атрибутам глобальной области JS в своем приложении.Свойства доступа глобального контекста JS без DOM

Там нет DOM, так что я не могу использовать следующее:

for (var attr in window) { 
    // attr is in the global scope 
} 

Есть ли способ, чтобы получить ссылку на глобальную область видимости JS?

+2

Какая у вас среда, если нет DOM? Узел? – elclanrs

+0

сам и это обычно работа. – dandavis

+0

Вы действительно спрашиваете, можете ли вы получить доступ к записи среды для данного контекста выполнения? Если это так, ответ в значительной степени «нет». –

ответ

2

В нестрогого режиме вы можете получить ссылку на глобальный объект, используя этот:

var globalObj = (function(){return this}()); 

как если вы не установили этот в вызове, то по умолчанию глобального объекта , Это будет работать в любом контексте выполнения (но не в строгом режиме). Simpler просто создать глобальную переменную, которая ссылается на глобальный объект:

var global = this; 

или передать его в IIFE:

(function (global) { 
    // In here, global === global object 
    ... 
}(this)) 

что подходит.

+0

+1 Я задавался вопросом, требуется ли ECMAScript «this' ссылаться на глобальный объект в контексте глобального исполнения, и кажется, что он это делает. http://es5.github.io/#x10.4.1.1 –

Смежные вопросы