27.06.2014, 12:46
|
Профессор
|
|
Регистрация: 17.05.2014
Сообщений: 197
|
|
Сообщение от nverv
|
неужели так будет что нельзя будет написать создавать переменную просто так - this.x
|
Там в JS, идут, как бы параллельно 2 парадигмы, smalltalk-style и быдло-lisp-style(aka scheme) и они пересекаются и конфликтуют между собой. Хорошо бы выкинуть всю схему, и оставить один смаллток. Но современные оптимизации, к сожалению, не расчитаны на динамику, поэтому крен идет в сторону быдлосхемы. Так вот, this.x=, это, строго говоря, не объявление переменной, а отправка сообщения объекту.
|
|
27.06.2014, 12:59
|
|
Профессор
|
|
Регистрация: 24.09.2013
Сообщений: 1,436
|
|
Цитата:
|
это же прелесть жаваскрипта - в возможности простого объявления переменных
|
Без var? Когда ты объявляешь переменную без var, ты объявляешь ее в глобальном пространстве, при этом засирая его. При работе над более или менее крупным проектом сразу начнутся проблемы.
Цитата:
|
следовательно вопрос - ограничивать ли себя строгим режимом? кому это нафиг нужно?
что за странное ожидание апокалипсиса запрещающего тебе синтаксический сахар
|
Строгий режим - режим соответствия современным стандартам. Рано или поздно на эти современные стандарты перейдут все браузеры.
Цитата:
|
неужели так будет что нельзя будет написать создавать переменную просто так - this.x
|
Кхм, ты что, таким образом переменные объявляешь? Не надо так)
|
|
27.06.2014, 14:22
|
|
Аспирант
|
|
Регистрация: 26.06.2014
Сообщений: 70
|
|
Сообщение от foo
|
Там в JS, идут, как бы параллельно 2 парадигмы, smalltalk-style и быдло-lisp-style(aka scheme) и они пересекаются и конфликтуют между собой. Хорошо бы выкинуть всю схему, и оставить один смаллток. Но современные оптимизации, к сожалению, не расчитаны на динамику, поэтому крен идет в сторону быдлосхемы. Так вот, this.x=, это, строго говоря, не объявление переменной, а отправка сообщения объекту.
|
вот в этом то и дело
и я хочу понять откуда ноги растут
пжста подробнее расскажи на примере синтаксисов
кстати - var - с его помошью также можно засрать глобальное пространство
|
|
27.06.2014, 14:29
|
|
Аспирант
|
|
Регистрация: 26.06.2014
Сообщений: 70
|
|
как я понимаю - var - он для функций, локальная переменная
нет смысла его использовать в глобальном пространстве, он только для функция для скрытия области видимости
для создания именованых контейнеров в глобале используется глобальный метод:
Object.defineProperty(объект, контейнер, значение)
или синтаксический сахар:
объект.контейнер = значение
осталось лишь понять - запрещать ли себе использование этого сахара в ожидание наступающего строгого апокалипсиса
сука дурдом глобальный...
как же учить язык когда говорят - "на тебе такую функциональность но лучше ее не используй"
Последний раз редактировалось nverv, 27.06.2014 в 15:22.
|
|
27.06.2014, 14:58
|
Профессор
|
|
Регистрация: 17.05.2014
Сообщений: 197
|
|
Сообщение от nverv
|
подробнее расскажи на примере синтаксисов
|
Ну, грубо говоря, если бы мы убрали все функции с локальным скопом, мы бы использовали только объектную нотацию и функции без лексических областей, мы бы получили смолток, а если наоборот, убрать объекты, и оставить функции с лексическим скопом, у нас был бы scheme. Иными словами ФП vs прототипное ООП. Синтаксис - это собственно литералы объектов и обычные функции.
Сообщение от nverv
|
с его помошью также можно засрать глобальное пространство
|
Например?
|
|
27.06.2014, 15:07
|
|
Профессор
|
|
Регистрация: 24.09.2013
Сообщений: 1,436
|
|
Цитата:
|
как я понимаю - var - он для функций, локальная переменная
нет смысла его использовать в глобальном пространстве, он только для функция для скрытия области видимости
|
Тебе уже сказали - смысл есть, ибо правилами указано. Без var объявлять можно лишь потому, что это оплошность ранних стандартов.
Цитата:
|
Erolast, забей на него, каждый месяц на JS.ru появляется очередной диванный теоретик, который всех учит как надо писать код
|
А я знание терминологии и тонкостей языка оттачиваю
Последний раз редактировалось Erolast, 27.06.2014 в 15:10.
|
|
27.06.2014, 15:11
|
Профессор
|
|
Регистрация: 17.05.2014
Сообщений: 197
|
|
Сообщение от Erolast
|
это оплошность ранних стандартов.
|
Это не оплошность ранних стандартов. Я где то читал, что в раннем js вообще не было замыканий. Этот вопрос не стоял вообще. Это теперешний стиль -- оплошность и уступка хлопающему глазами плюсовому быдлу. Настоящая суть js -- это объекты.
|
|
27.06.2014, 15:13
|
|
Профессор
|
|
Регистрация: 24.09.2013
Сообщений: 1,436
|
|
Цитата:
|
Это не оплошность ранних стандартов.
|
Да, это пережиток ранних стандартов.
|
|
27.06.2014, 15:15
|
|
Аспирант
|
|
Регистрация: 26.06.2014
Сообщений: 70
|
|
Сообщение от foo
|
Это не оплошность ранних стандартов. Я где то читал, что в раннем js вообще не было замыканий. Этот вопрос не стоял вообще. Это теперешний стиль -- оплошность и уступка хлопающему глазами плюсовому быдлу. Настоящая суть js -- это объекты.
|
согласен!
также замыканиями чудовищно усложняется по сути простейший язык
|
|
27.06.2014, 15:20
|
|
Аспирант
|
|
Регистрация: 26.06.2014
Сообщений: 70
|
|
Сообщение от foo
|
Ну, грубо говоря, если бы мы убрали все функции с локальным скопом, мы бы использовали только объектную нотацию и функции без лексических областей, мы бы получили смолток, а если наоборот, убрать объекты, и оставить функции с лексическим скопом, у нас был бы scheme. Иными словами ФП vs прототипное ООП. Синтаксис - это собственно литералы объектов и обычные функции.
|
я не понял, а сам способ создания переменной в виде: "объект.переменная" - он из какого языка пришел к нам?
Сообщение от foo
|
Например?
|
не понял?
варом создаю глобальные переменные, и постепенно образуется бардак
то есть вар это не решение проблемы засирания, это другая история
|
|
|
|