Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   где еще используется VAR ? (https://javascript.ru/forum/misc/48246-gde-eshhe-ispolzuetsya-var.html)

foo 27.06.2014 12:46

Цитата:

Сообщение от nverv
неужели так будет что нельзя будет написать создавать переменную просто так - this.x

Там в JS, идут, как бы параллельно 2 парадигмы, smalltalk-style и быдло-lisp-style(aka scheme) и они пересекаются и конфликтуют между собой. Хорошо бы выкинуть всю схему, и оставить один смаллток. Но современные оптимизации, к сожалению, не расчитаны на динамику, поэтому крен идет в сторону быдлосхемы. Так вот, this.x=, это, строго говоря, не объявление переменной, а отправка сообщения объекту.:)

Erolast 27.06.2014 12:59

Цитата:

это же прелесть жаваскрипта - в возможности простого объявления переменных
Без var? Когда ты объявляешь переменную без var, ты объявляешь ее в глобальном пространстве, при этом засирая его. При работе над более или менее крупным проектом сразу начнутся проблемы.

Цитата:

следовательно вопрос - ограничивать ли себя строгим режимом? кому это нафиг нужно?
что за странное ожидание апокалипсиса запрещающего тебе синтаксический сахар
Строгий режим - режим соответствия современным стандартам. Рано или поздно на эти современные стандарты перейдут все браузеры.

Цитата:

неужели так будет что нельзя будет написать создавать переменную просто так - this.x
Кхм, ты что, таким образом переменные объявляешь? Не надо так)

nverv 27.06.2014 14:22

Цитата:

Сообщение от foo (Сообщение 318230)
Там в JS, идут, как бы параллельно 2 парадигмы, smalltalk-style и быдло-lisp-style(aka scheme) и они пересекаются и конфликтуют между собой. Хорошо бы выкинуть всю схему, и оставить один смаллток. Но современные оптимизации, к сожалению, не расчитаны на динамику, поэтому крен идет в сторону быдлосхемы. Так вот, this.x=, это, строго говоря, не объявление переменной, а отправка сообщения объекту.:)

вот в этом то и дело
и я хочу понять откуда ноги растут

пжста подробнее расскажи на примере синтаксисов

кстати - var - с его помошью также можно засрать глобальное пространство

nverv 27.06.2014 14:29

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

для создания именованых контейнеров в глобале используется глобальный метод:
Object.defineProperty(объект, контейнер, значение)

или синтаксический сахар:
объект.контейнер = значение


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

как же учить язык когда говорят - "на тебе такую функциональность но лучше ее не используй"

foo 27.06.2014 14:58

Цитата:

Сообщение от nverv
подробнее расскажи на примере синтаксисов

Ну, грубо говоря, если бы мы убрали все функции с локальным скопом, мы бы использовали только объектную нотацию и функции без лексических областей, мы бы получили смолток, а если наоборот, убрать объекты, и оставить функции с лексическим скопом, у нас был бы scheme. Иными словами ФП vs прототипное ООП. Синтаксис - это собственно литералы объектов и обычные функции.

Цитата:

Сообщение от nverv
с его помошью также можно засрать глобальное пространство

Например?

Erolast 27.06.2014 15:07

Цитата:

как я понимаю - var - он для функций, локальная переменная
нет смысла его использовать в глобальном пространстве, он только для функция для скрытия области видимости
Тебе уже сказали - смысл есть, ибо правилами указано. Без var объявлять можно лишь потому, что это оплошность ранних стандартов.
Цитата:

Erolast, забей на него, каждый месяц на JS.ru появляется очередной диванный теоретик, который всех учит как надо писать код
А я знание терминологии и тонкостей языка оттачиваю :)

foo 27.06.2014 15:11

Цитата:

Сообщение от Erolast
это оплошность ранних стандартов.

Это не оплошность ранних стандартов. Я где то читал, что в раннем js вообще не было замыканий. Этот вопрос не стоял вообще. Это теперешний стиль -- оплошность и уступка хлопающему глазами плюсовому быдлу. Настоящая суть js -- это объекты.

Erolast 27.06.2014 15:13

Цитата:

Это не оплошность ранних стандартов.
Да, это пережиток ранних стандартов.

nverv 27.06.2014 15:15

Цитата:

Сообщение от foo (Сообщение 318269)
Это не оплошность ранних стандартов. Я где то читал, что в раннем js вообще не было замыканий. Этот вопрос не стоял вообще. Это теперешний стиль -- оплошность и уступка хлопающему глазами плюсовому быдлу. Настоящая суть js -- это объекты.

согласен!

также замыканиями чудовищно усложняется по сути простейший язык

nverv 27.06.2014 15:20

Цитата:

Сообщение от foo (Сообщение 318263)
Ну, грубо говоря, если бы мы убрали все функции с локальным скопом, мы бы использовали только объектную нотацию и функции без лексических областей, мы бы получили смолток, а если наоборот, убрать объекты, и оставить функции с лексическим скопом, у нас был бы scheme. Иными словами ФП vs прототипное ООП. Синтаксис - это собственно литералы объектов и обычные функции.

я не понял, а сам способ создания переменной в виде: "объект.переменная" - он из какого языка пришел к нам?

Цитата:

Сообщение от foo (Сообщение 318263)
Например?

не понял?
варом создаю глобальные переменные, и постепенно образуется бардак
то есть вар это не решение проблемы засирания, это другая история


Часовой пояс GMT +3, время: 00:03.