Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 27.06.2014, 15:53
Аватар для nverv
Аспирант
Отправить личное сообщение для nverv Посмотреть профиль Найти все сообщения от nverv
 
Регистрация: 26.06.2014
Сообщений: 70

Сообщение от Erolast Посмотреть сообщение
Ты путаешь. Это свойства, а не переменные. Свойства, разумеется, объявлять не надо.
я не путаю

я говорю что по сути для программиста есть только два типа именованых контейнеров - глобальный и локальный
соответствнно логично разделить методы их обявления

ну какой же есть смысл использования var в глобале если тот же самый эфект и даже лучше достигается методом добавьСвойство
Ответить с цитированием
  #22 (permalink)  
Старый 27.06.2014, 15:59
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Ты, чтоли, об этом? Ну можно и методом defineProperty(window, value). Можно и через window.value. Технически разницы нету. Но мне почему-то кажется, что так не проще)
Ответить с цитированием
  #23 (permalink)  
Старый 27.06.2014, 15:59
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

nverv, чувак, никто тебе не запрещает писать

this.foo = ...


Более того это типичный пример "портируемого" кода для разных окружений, т.к.:

браузер - глобальный объект
поток - глобальный объект
node - exports

***

Плохо когда пишут:

foo =


т.к. такое поведение было убрано из стандарта - хорошо это или плохо другой вопрос, но на мой взгляд они сделали всё правильно, т.к. подход к переменным в JS изначально был неверный и в ECMAScript6 это исправили (добавили let и const).

Кого раздражает синтаксическая многословность, то посмотрите в сторону CoffeeScript и прочих транслируемых в JS языков.

***

В новый стандарт JS добавили нативные модули, и при их использовании var будет добавлять не в global space, а в контекст модуля (как в ноде) и тут уже очевидная разница.

JS эволюционирует, т.к. меняются его задачи и сферы применения, так например появятся типы, структуры, уже появились "настоящие" массивы и возможность ручного управления памятью и ещё куча всего. От того, что кому то кажется сложным мир не изменится и это сугубо твои проблемы. Не хочешь учиться - иди работать в макдональдс.
__________________
kobezzza
code monkey
Ответить с цитированием
  #24 (permalink)  
Старый 27.06.2014, 16:04
Аватар для nverv
Аспирант
Отправить личное сообщение для nverv Посмотреть профиль Найти все сообщения от nverv
 
Регистрация: 26.06.2014
Сообщений: 70

Сообщение от Erolast Посмотреть сообщение
Ты, чтоли, об этом? Ну можно и методом defineProperty(window, value). Можно и через window.value. Технически разницы нету. Но мне почему-то кажется, что так не проще)
но же "строгий режим" запрещает так писать -
window.value = 1

вопрос- наплевать ли мне на этот запрет и жить удобнее, или с самого начала приучиться использовать defineProperty ?

склоняюсь к таком простому способу создания именованых контейнеров
Ответить с цитированием
  #25 (permalink)  
Старый 27.06.2014, 16:05
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Цитата:
но же "строгий режим" запрещает так писать -
window.value = 1
С чего бы вдруг? Не запрещает.
Ответить с цитированием
  #26 (permalink)  
Старый 27.06.2014, 16:06
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Цитата:
но же "строгий режим" запрещает так писать -
window.value = 1
Ты путаешь, так писать можно - это нормальное поведение.

Нельзя писать

Цитата:
value = 1
__________________
kobezzza
code monkey
Ответить с цитированием
  #27 (permalink)  
Старый 27.06.2014, 16:35
foo foo вне форума
Профессор
Отправить личное сообщение для foo Посмотреть профиль Найти все сообщения от foo
 
Регистрация: 17.05.2014
Сообщений: 197

Сообщение от kobezzza
Не хочешь учиться - иди работать в макдональдс.
Строго наоборот. Хомячье не понимает программирования, поэтому ему нужен сахар. Инженер превращается в секретаршу с интерфейсом, но зато их теперь много, и можно клепать энтерпрайз.
Ответить с цитированием
  #28 (permalink)  
Старый 27.06.2014, 16:36
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Да вот кто б говорил...
Ответить с цитированием
  #29 (permalink)  
Старый 27.06.2014, 16:46
Аватар для nverv
Аспирант
Отправить личное сообщение для nverv Посмотреть профиль Найти все сообщения от nverv
 
Регистрация: 26.06.2014
Сообщений: 70

Сообщение от kobezzza Посмотреть сообщение
Ты путаешь, так писать можно - это нормальное поведение.
а читая фленагана я понял что нельзя так

"
все переменные должны объявляться... стр 134


или тут речь только о локальных переменных создаваемых var
Ответить с цитированием
  #30 (permalink)  
Старый 27.06.2014, 16:49
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

nverv, ты просто не правильно понял, если ты явно пишешь кому ты ставишь свойство - то юзай на здоровье.

Плохо когда юзают такие штуки
a = 2 // неявная декларация global.a = 2

function bar() {
  b = 3 // неявная декларация global.b = 3
}

foo // неявная декларация document.getElementById('foo')
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 27.06.2014 в 16:56.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Штрих коды для Java mocaua Общие вопросы Javascript 2 27.02.2014 05:41
функция выделения текста в textarea, не работает в IE Alexander333 Internet Explorer 6 30.06.2012 18:21
Проблема с обработкой OnClick suslik90 Events/DOM/Window 1 11.05.2012 21:09
Библиотека javascript эффектов HelpeR Ваши сайты и скрипты 39 15.05.2010 21:30
CComponent - кроссбраузерные компоненты tenshi Ваши сайты и скрипты 5 20.04.2010 23:22