Есть ли способ запретить функции использовать глобальные переменные, такие как документ, окно, навигатор и другие объявленные глобальные функции?
Нет, если только ...
Единственный способ выполнить эту задачу - это изменить область действия лексический функций, то есть источник изменен в некотором роде, например обернуть его, как показано ниже.
Представьте себе:
;(function () {
var window = "Hello"
// original content
function foo () {
alert(window)
}
foo()
})()
Этот подход часто используется в библиотеках для создания частных пространств имен, но в этих случаяхПервоначальный источник также доступен и разработан с учетом этого.Я использовал это с document
, прежде чем изменил локальную версию jQuery.
Хотя with
может показаться многообещающим на первый взгляд, важно понимать, что это всего лишь лексическая также создает и не вводит динамические переменные.
Удачное кодирование.