Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   CoffeeScript vs ES6 (https://javascript.ru/forum/offtopic/58349-coffeescript-vs-es6.html)

newtimebigtime 17.09.2015 19:07

Цитата:

Сообщение от FINoM
Одной штуки, конечно, не хватает в JS, которая есть в Кофе:

теперь есть.
Object.prototype.$=function(slot){
 var self = this
 if(slot in this && typeof this[slot] === "function") return function(){return self[slot].apply(self, arguments)}
 if(slot in this) return this[slot]
 return {value: undefined}
}

o={foo: {bar: 1}, bar: 1, baz: function(x){return x+this.bar}}

console.log(
 o.$("foo").$("bar"),
 o.$("baz")(4),
 o.$("moo").$("foo")
)

//1 5 { value: undefined }

Вопросительный знак использовать не получится, но можно юзать другие идентификаторы. Синтаксис чуть другой, суть та же. МБ надо чуть допилить, толком не тестил.

FINoM 17.09.2015 19:12

Цитата:

Сообщение от newtimebigtime
теперь есть.

Выглядит как адовый костыль. Плюс, какать в прототипы не очень верно.

newtimebigtime 17.09.2015 19:19

Цитата:

Сообщение от FINoM
Выглядит как адовый костыль.

Это с непривычки. По сути - то е самое.
Цитата:

Сообщение от FINoM
в прототипы не очень верно.

это не обязательно. Можно создать сабкласс Object, и на его основе слепить то же самое.

Короче, я говорю, никаких принципиально важных возможностей в этих хипстерских поделиях нет, таких, которые нельзя реализовать нативно. Все эти Вау, сводятся к мелким синтаксическим вещам, там скобочку не надо ставить, там стрелочка вместо function, короче детсад, даже экономией на спичках назвать трудно.

FINoM 17.09.2015 19:24

Цитата:

Сообщение от newtimebigtime
там стрелочка вместо function

В ES6 тоже есть стрелочка. Она даже в 46 Хроме есть, без флагов.

newtimebigtime 17.09.2015 19:27

Цитата:

Сообщение от FINoM
В ES6 тоже есть стрелочка. Она даже в 46 Хроме есть, без флагов.

Я к тому, что это детсад. В крупном приложении эти стрелочки/нестрелочки в общем объеме кода мало что решают.

FINoM 17.09.2015 19:35

Цитата:

Сообщение от newtimebigtime
В крупном приложении эти стрелочки/нестрелочки в общем объеме кода мало что решают.

Ну не скажи. Как раз в крупном проекте они и нужны, чтоб улучшить читаемость кода и уменьшить количество строк.

newtimebigtime 17.09.2015 19:37

Цитата:

Сообщение от FINoM
чтоб улучшить читаемость кода и уменьшить количество строк.

Количество строк ты этим существенно не уменьшишь. А читаемость -- понятие субъективное, не буду спорить.

Lemme 17.09.2015 19:47

newtimebigtime, ты просто уперся в свое, а пробовать не хочешь "вдруг понравится, что я тогда делать буду?".

Все, кто юзают айфоны, говорят - фуфу вы все ходите с лопатами (4.7+ дюймов), а потом выходит iphone 6, 6+. О, это круто. Но.... Как же 4 дюйма???

Ты сейчас выглядишь как пользователь iphone 5 :D, который думает, что 4дюйма это невероятно круто.

l-liava-l 17.09.2015 20:22

Цитата:

Ну не скажи. Как раз в крупном проекте они и нужны, чтоб улучшить читаемость кода и уменьшить количество строк.
Ты паришься из-за того сколько строк полетит в репозиторий? :)

Читаемость кода улучшает дробежка на мелкие кусочки с явным API и желательно с документацией. К сожалению во многих проектах не всегда есть время на доки, а тем более юнит тесты. В таких условиях коффе код превращается в одну огромную регулярку с большей вероятностью чем js.


Эхх я тут умничал думая что твое сообщение касалось сахарности кофе


Цитата:

Одной штуки, конечно, не хватает в JS, которая есть в Кофе:
Ага, иногда рука дергается :yes:

ТОТ_САМЫЙ 18.09.2015 01:40

Цитата:

Сообщение от FINoM
Async functions, не? for..of loops не? let, const не?

Не


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