Спецификация HTML5 определила решение этого вопроса: если вы используете HTML5, вы можете указать атрибуты данных в своей DOM.
Смотрите эту страницу для получения дополнительной информации: http://ejohn.org/blog/html-5-data-attributes/
Это теперь стандартизированный способ сделать это, так что я думаю, что это считается лучшей практики. Также Джон Ресиг, который написал блог, который я связал выше, является автором JQuery, поэтому, если он достаточно хорош для него, я должен спорить.
Действительно хорошая новость заключается в том, что вам даже не нужно использовать HTML5-совместимый браузер для работы этой техники - он уже работает в старых браузерах; это просто, что теперь он был закодирован в стандарт, и есть определенный способ сделать это.
Это говорит о том, что в вашей Javascript нет ничего плохого в глобальной переменной, если вы избегаете слишком много загрязнять пространство имен, и это будет более эффективно с точки зрения производительности, поэтому в этом подходе есть много достоинств.
Зависит от того, как его использовать и почему. Если его использовать только в той же функции, вы можете сохранить его как свойство на панели имен функций ["foo"] = "", но если он будет использоваться в другом месте, может быть лучше объявить его там от начала , –
Примечание: Я думаю, вы можете отредактировать его, чтобы сказать 'foo =" bar "; function bar() {... foo = "bat"; return foo; } '. По крайней мере, так я прочитал этот вопрос. – BudgieInWA
Это о exaple того, как я подумал: функцию с() { \t \t если (TypeOf с [ "1"] == "неопределенный") \t \t \t с [ "1"] = 1; \t \t документ.написать (с [ "1"] ++); \t} \t \t c(); Он работает как статическая переменная. –