Цитата:
я говорю что по сути для программиста есть только два типа именованых контейнеров - глобальный и локальный соответствнно логично разделить методы их обявления ну какой же есть смысл использования var в глобале если тот же самый эфект и даже лучше достигается методом добавьСвойство |
Ты, чтоли, об этом? Ну можно и методом defineProperty(window, value). Можно и через window.value. Технически разницы нету. Но мне почему-то кажется, что так не проще)
|
nverv, чувак, никто тебе не запрещает писать
this.foo = ... Более того это типичный пример "портируемого" кода для разных окружений, т.к.: браузер - глобальный объект поток - глобальный объект node - exports *** Плохо когда пишут: foo = т.к. такое поведение было убрано из стандарта - хорошо это или плохо другой вопрос, но на мой взгляд они сделали всё правильно, т.к. подход к переменным в JS изначально был неверный и в ECMAScript6 это исправили (добавили let и const). Кого раздражает синтаксическая многословность, то посмотрите в сторону CoffeeScript и прочих транслируемых в JS языков. *** В новый стандарт JS добавили нативные модули, и при их использовании var будет добавлять не в global space, а в контекст модуля (как в ноде) и тут уже очевидная разница. JS эволюционирует, т.к. меняются его задачи и сферы применения, так например появятся типы, структуры, уже появились "настоящие" массивы и возможность ручного управления памятью и ещё куча всего. От того, что кому то кажется сложным мир не изменится и это сугубо твои проблемы. Не хочешь учиться - иди работать в макдональдс. |
Цитата:
window.value = 1 вопрос- наплевать ли мне на этот запрет и жить удобнее, или с самого начала приучиться использовать defineProperty ? склоняюсь к таком простому способу создания именованых контейнеров |
Цитата:
|
Цитата:
Нельзя писать Цитата:
|
Цитата:
|
Да вот кто б говорил...
|
Цитата:
" все переменные должны объявляться... стр 134 или тут речь только о локальных переменных создаваемых var |
nverv, ты просто не правильно понял, если ты явно пишешь кому ты ставишь свойство - то юзай на здоровье.
Плохо когда юзают такие штуки a = 2 // неявная декларация global.a = 2 function bar() { b = 3 // неявная декларация global.b = 3 } foo // неявная декларация document.getElementById('foo') |
Часовой пояс GMT +3, время: 15:18. |