2014-12-21 2 views
-4

Я где-то читал, что абсолютно невозможно достичь ссылки на сферу. Есть ли какие-либо хаки, чтобы получить ссылку на область действия и «запереть» ее внутри переменной?Hack, чтобы получить ссылку на область действия?

EDIT:

Я знаю, что могу приобрести глобальный масштаб через window объекта. Я имею в виду динамическое создание областей функций и так четвертое.

+1

слишком неопределенный вопрос без примеров. scope/close не является тривиальной концепцией – charlietfl

+1

Кроме собственного расширения движков JavaScript, нет. Ни один из основных двигателей не предлагает прямого воздействия на [лексические среды] (http://www.ecma-international.org/ecma-262/5.1/#sec-10.2) или [записи окружения] (http: // www. ecma-international.org/ecma-262/5.1/#sec-10.2.1) к коду JavaScript. –

+1

Связанный: [Ссылка на функции локальной области как объекта] (http://stackoverflow.com/questions/2600361/javascript-reference-a-functions-local-scope-as-an-object) –

ответ

0

Отказ от объекта Windows/глобальной области внутри переменной может быть таким. Здесь я предполагаю, что вы в глобальном масштабе

var reftowindows = this; 

Я имею в виде динамически создает области функций и так четвёртые.

Функция определена в глобальном масштабе

function returnRefrence(){ 
var refvar = this; 
return this; 

} 

Вызов функции возврата переменной держа refrence в window в рамках

console.log(returnRefrence()); // console logs "window" object 

функцию с вызовом Вызов() и привязки его к объекту изменяет объем и возвращает переменное удерживание refrence до obj как сфера охвата

obj = {}; 
console.log(returnRefrence.call(obj)); // console logs "obj" object 
+0

'this' won ' t - глобальный объект в строгом режиме. – Oriol

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