Я делаю компонент Firefox, используя JavaScript.
Но меня всегда смущает, какова глобальная область действия текущей функции JavaScript, что приводит к следующим вопросам?
Я понимаю некоторую базовую концепцию о глобальной области действия функции js в обычном случае, но я хочу знать, когда определяется глобальная область действия функции? Время, когда функция создается (определяется), или время, когда функция вызывается?
Есть ли способ показать (напечатать некоторую информацию) текущую глобальную область действия функции javascript?
following question is firefox component specific
Для компонента Firefox каждый компонент имеет глобальную область видимости? (что означает, что каждая функция компонента будет выполняться сама по себе в глобальной области видимости), или все компоненты имеют одинаковую глобальную область видимости?
Если то же самое, что это?
Например, в таком случае
sorry for this boring example, i just make it as clear as possible.
Я делаю песочницу через Components.utils.Sandbox(<scope1>)
. Я определяю некоторую функцию в компоненте ff (я назвал <scope2>
) и вставляю переменную в песочницу с помощью: sandbox.external = this;
(«this» - это просто сам компонент, который находится в scope2)
После этого шага я запускаю некоторый код в песочнице Components.utils.evalInSandbox( <code> , sandbox);
, а <code>
содержит function sandboxFoo()
, который вызывает external.foo()
1). какова глобальная область действия sandboxFoo
, когда он работает? Я думаю, что это должно быть
2). какова глобальная область действия external.foo
, когда она вызывается sandboxFoo
? Это <scope1>
или <scope2>
? Любая документация?