27.06.2014, 15:21
|
|
Профессор
|
|
Регистрация: 24.09.2013
Сообщений: 1,436
|
|
Пришли два пацана на форум программистов и начали всех учить правильному коду. Збс.
|
|
27.06.2014, 15:23
|
|
Аспирант
|
|
Регистрация: 26.06.2014
Сообщений: 70
|
|
Сообщение от Erolast
|
Пришли два пацана на форум программистов и заявили, что тут все неправильно кодят на неправильно составленном языке. Збс.
|
да нет жешь, наоборот шобы понять основы языка, ибо в учебниках не понятно
вот ты мне скажи - зачем разделять переменные от свойств
вот балин не врубаюсь
локальные переменные в области видимости функции - варом
все остальные переменные так или иначе все располагаются в иерархии глобального объекта - их можно создавать методом добавитьСвойство и удалять
и всё
Последний раз редактировалось nverv, 27.06.2014 в 15:29.
|
|
27.06.2014, 15:25
|
|
Профессор
|
|
Регистрация: 24.09.2013
Сообщений: 1,436
|
|
Тебе объяснили эти основы, я лично аж несколько раз. var использовать надо обязательно, ибо это стандарт. Ты с foo напару упорно твердишь, что мы тут все неправы и он не нужен. Прелестно, чо.
|
|
27.06.2014, 15:28
|
|
Профессор
|
|
Регистрация: 24.09.2013
Сообщений: 1,436
|
|
Цитата:
|
вот ты мне скажи - зачем разделять переменные от свойств
|
Затем, что это разные сущности.
|
|
27.06.2014, 15:30
|
|
Аспирант
|
|
Регистрация: 26.06.2014
Сообщений: 70
|
|
Сообщение от Erolast
|
Тебе объяснили эти основы, я лично аж несколько раз. var использовать надо обязательно, ибо это стандарт. Ты с foo напару упорно твердишь, что мы тут все неправы и он не нужен. Прелестно, чо.
|
тут ты не прав
создавать можно и Варом и методом добавтьСвойство - результат одинаковый за исключением параметра Неудаляемый
|
|
27.06.2014, 15:30
|
Профессор
|
|
Регистрация: 17.05.2014
Сообщений: 197
|
|
Сообщение от Erolast
|
Да, это пережиток ранних стандартов.
|
На самом деле, откуда идут корни проблемы. Объявление без var соответствует оператору set! из scheme -- это оператор деструктивного присваивания. Обьявление без вар не модифицирует глобальную область, он модифицирует низлежащее лексическое окружение. Если бы программисты JS это понимали, они бы не стреляли себе в ногу,
counterMaker=function(start){return function(){console.log(start++)}}
counter=counterMaker(5)
counter()
counter()
counter()
//--------------\
5
6
7
Это ф-ция с состоянием, и она не засирает глобал, хотя никакого вар тут нет, синтаксически. Все проблемы от непонимания инструмента.
Последний раз редактировалось foo, 27.06.2014 в 15:34.
|
|
27.06.2014, 15:32
|
Профессор
|
|
Регистрация: 17.05.2014
Сообщений: 197
|
|
Сообщение от nverv
|
варом создаю глобальные переменные, и постепенно образуется бардак
то есть вар это не решение проблемы засирания, это другая история
|
Не, там они, эти комитетчики и прочие, видят проблему в том, что глобал засирается неявно. То что явно определено в глобале, об этом речи нет
|
|
27.06.2014, 15:33
|
|
Аспирант
|
|
Регистрация: 26.06.2014
Сообщений: 70
|
|
Сообщение от Erolast
|
Затем, что это разные сущности.
|
есть две сущности -
1) иерархия объектов внутри глобального объекта (создаются методом добавитьСвойство)
2) локальные переменные подпрограмм (создаются Варом)
вот это настоящая правда-истина
|
|
27.06.2014, 15:35
|
|
Профессор
|
|
Регистрация: 24.09.2013
Сообщений: 1,436
|
|
Цитата:
|
создавать можно методом добавтьСвойство
|
При чем тут метод defineProperty, если ты о нем, когда мы говорим о переменных?
Цитата:
|
есть две сущности -
1) иерархия объектов внутри глобального объекта (создаются методом добавитьСвойство)
2) локальные переменные подпрограмм (создаются Варом)
вот это настоящая правда-истина
|
Да, правильно. Ну, почти. defineProperty используется для того, чтобы при объявлении свойства установить на него какие-либо флаги. Свойства объявляются обычно так:
var some_object = {};
some_object.property = 10;
Последний раз редактировалось Erolast, 27.06.2014 в 15:38.
|
|
27.06.2014, 15:36
|
|
Аспирант
|
|
Регистрация: 26.06.2014
Сообщений: 70
|
|
Сообщение от Erolast
|
При чем тут метод defineProperty, если ты о нем, когда мы говорим о переменных?
|
что такое переменная?! если не просто именованный контейнер, адрес относительно глобального корня
о чем мы спорим?
Последний раз редактировалось nverv, 27.06.2014 в 15:39.
|
|
|
|