Можно ли это сделать, написав некоторый код, чтобы перехватить объявление глобальной видимости по умолчанию или через параметр в самом javascript-модуле, к которому у каждой программы или функции есть доступ?Имейте javascript объявлять (по умолчанию) необъявленные переменные в текущую локальную область (на основе первого использования) вместо глобальной области?
Что я имею в виду, если бы я мог, в верхней части программы (или функции), сообщить механизму javascript использовать локальную область для необъявленных переменных вместо глобальной области ... тогда, когда механизм javascript скомпилирует каждую функцию , он объявит их в локальном масштабе.
Я понимаю, что если вы хотите объявить переменную за пределами текущей области, это должно быть сделано явно, так как никто не знает, где вы хотите ее объявить, но я думаю, что по умолчанию глобальная область выходит слишком много места для ошибок и сил тоже много типизации операторов var в каждой функции, поэтому я хотел бы изменить значение по умолчанию в своих программах, если это возможно.
Моя основная цель состоит в том, чтобы не вводить список локальных переменных в оператор var в верхней части каждой функции и не поддерживать сохранение этого списка в синхронизации с локальными переменными, поскольку я их использую внутри функции. Невыполнение глобального значения по умолчанию также снижает риск ошибок.
Я бы никогда не хотел, чтобы необъявленные переменные попадали в любую более высокую область действия, чем область, в которой они впервые используются. Нет никакой ценности в том, что они по умолчанию имеют глобальную область видимости.
Я знаю, что я могу эксплицировать объявления переменных в текущей области (или глобальной области), но хотел бы избежать этого и использовать более полезный по умолчанию, чем глобальная область применения по умолчанию, встроенная в javascript.
Я также знаю, что могу использовать «use strict», чтобы принудительно объявлять все переменные. Не желая обсуждать правильное или неправильное, но просто спрашивает, есть ли способ изменить значение по умолчанию на локальную область, а не глобальную область для данной функции.
Я не знаю такого варианта. Но вы можете «использовать строгую», чтобы ограничить возможности. – Sebas
Какова основная проблема, по которой вы смотрите вниз по этому пути? – charlietfl
Используйте [CoffeeScript] (http://coffeescript.org), он решает эту особую досаду и делает синтаксис Javascript более привлекательным в целом IMO. – deceze