Даня
Вот ещё, но браузер блокирует загрузку почему-то.
Даня
Андрей
И?
Андрей
Это чисто текст?
Даня
А тест в файле будет.
Anna
#вакансия #работа #JS # офис #новосибирск Город: Новосибирск Формат работы: офис Занятость: полная Зарплатная вилка: от 100 до 150 тысяч рублей на руки. Frontend-р‎азработчики из прекрасного города Новосибирск, эта вакансия для вас! В современный банк для предпринимателей разыскиваются крутые Frontend-р‎азработчики с выходом в офис. Нужно будет создавать самое удобное и самое крутое банковское приложение, использовать новые технологии и делать самые крутые интерфейсы Требования к кандидату: • опыт разработки фронтальных приложений не менее 3х лет, либо можно и без такого, если считаете себя гением • знание JavaScript, понимание объектной модели JS, слово “замыкание” не должно ассоциироваться с электрическим током:) • опыт работы с JavaScript фреймворками: AngularJS 1.5, React и т.д. • Знание Bower, Grunt, Gulp, Webpack • HTML5/CSS3 • Знание методологий Agile (Scrum, Kanban); • Умение писать тесты и английский язык на уровне понимания технической документации станут преимуществом. Отклики на вакансию и вопросы направляйте в личку в Telegram @kotik_s_vakansiei и на e-mail: reezehanna@gmail.com.
Svyatoslav
Народ, объясните пожалуйста как задается this для такой функции: obj.func1 = (prop) => { console.log(this === obj) //false } obj.func1 = function (prop) { console.log(this === obj) //true }
Ilya
У стрелочной функции и у обычной разный контекст
Svyatoslav
Тогда что юзать, если в одних случаях мне this не нужен, а в других нужен? Только обычные функции, или считается нормльным использование обычных и стрелочных функций?
Карамультук
стрелочная функция являющаяся методом объекта на мой взгляд вообще не самая полезная вещь
Карамультук
если тебе нужно иметь доступ к контексту объекта, то лучше писать обычную функцию или вот так: obj = { func1() { console.log(this === obj) } }
Svyatoslav
Ясно. Просто не знал что они чем то функционально отличается
Карамультук
стрелочные фукнции - супер крутая вещь, которая как бы заставляет вас больше писать в функциональном стиле. Не делать методы, там где это не нужно
Карамультук
контекстом вызова
Aleksey
И как это относится к: > Не делать методы, там где это не нужно
Игорь
http://learn.javascript.ru/es-function#%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%B8-%D1%87%D0%B5%D1%80%D0%B5%D0%B7
Aleksey
> которая как бы заставляет вас больше писать в функциональном стиле. С этого тоже проорал.
Карамультук
не разбудил никого?
Aleksey
Не, просто вкинуть свои мысли на 3.5к читателей и не подкрепить их здравым смыслом как бы так себе идея, кто-то воспримет их за чистую монету, не надо так.
Dmitry
есть утилита которая может пожать js файл и положить ту даже ?
Dmitry
не веб пак
Dmitry
отдельно что то
Карамультук
@immuzov не вижу криминала в своих словах (в противном случае я бы конечно же этого не писал). Попробую чуть чуть подкрепить здравым смыслом. Стрелочные функции как методы считай бесполезны (нет доступа к контексту, а зачем нам метод без доступа к контексту). Но мне нравится писать стрелочные функции. Они получаются небольшими и конкретными (а в большинстве случаев еще и чистыми). Поэтому я хочу их продолжать использовать. И если мы пишем в смешанной парадигме ооп и фп, то использование стрелочных функций помогают принимать те или иные решения в пользу фп. Делают эти решения более очевидным. Сравните два подхода? Какой реюзабельней? Какой проще тестировать? const obj = { greeting: 'Hello', getGreeting(name) { return this.greeting + ' ' + name; } } ------ const generateGreeting = (greeting, name) => greeting + ' ' + name; const obj = { greeting: 'Hello', getGreeting(name) { return generateGreeting(this.greeting, name); } }
Артем
эй js-ники почему вас больше пхп=шников?
Aleksey
@immuzov не вижу криминала в своих словах (в противном случае я бы конечно же этого не писал). Попробую чуть чуть подкрепить здравым смыслом. Стрелочные функции как методы считай бесполезны (нет доступа к контексту, а зачем нам метод без доступа к контексту). Но мне нравится писать стрелочные функции. Они получаются небольшими и конкретными (а в большинстве случаев еще и чистыми). Поэтому я хочу их продолжать использовать. И если мы пишем в смешанной парадигме ооп и фп, то использование стрелочных функций помогают принимать те или иные решения в пользу фп. Делают эти решения более очевидным. Сравните два подхода? Какой реюзабельней? Какой проще тестировать? const obj = { greeting: 'Hello', getGreeting(name) { return this.greeting + ' ' + name; } } ------ const generateGreeting = (greeting, name) => greeting + ' ' + name; const obj = { greeting: 'Hello', getGreeting(name) { return generateGreeting(this.greeting, name); } }
Так не честно. Ты говоришь о том же преимуществе которое можно достичь без стрелочных функций.
Aleksey
Так в чем их профит в кроме сахарка и отсутствия контекста?
Карамультук
Aleksey
Возвращаясь к первому комментарию – вы мутите воду 🙂
Aleksey
Предмет разговора же совсем другой.
Aleksey
Ребята! Мы не о том!
Aleksey
этого разве мало?
Забиндь контекст обсуждения 😉
Maksim
Забиндь контекст обсуждения 😉
пытался, но не пойму что именно не можете поделить
Карамультук
Короче ладно. Я говорил про то что стрелочные функции by design форсят программиста писать больше в функциональном подходе
Карамультук
ушел
Dan
Ребят кто может помочь по данному вопросц https://toster.ru/q/497164
Ivan
В классе с JSX шаблоном, метод, заданный стрелочной функцией и установленный как обработчик события DOM элемента обеспечит доступ к контексту экземпляра класса при вызове. Без стрелочной функции контекст метода не будет равен экземпляру класса.
Карамультук
пример бы
Карамультук
крохотный хотя б
Aleksey
Компилятор делает это просто за тебя.
Ivan
Конструктор не всегда нужен
Aleksey
Но он всегда есть.
Ivan
Да. Я как раз хочу чтобы меньше кода было
Ivan
+ Я за ООП
Дима
@immuzov не вижу криминала в своих словах (в противном случае я бы конечно же этого не писал). Попробую чуть чуть подкрепить здравым смыслом. Стрелочные функции как методы считай бесполезны (нет доступа к контексту, а зачем нам метод без доступа к контексту). Но мне нравится писать стрелочные функции. Они получаются небольшими и конкретными (а в большинстве случаев еще и чистыми). Поэтому я хочу их продолжать использовать. И если мы пишем в смешанной парадигме ооп и фп, то использование стрелочных функций помогают принимать те или иные решения в пользу фп. Делают эти решения более очевидным. Сравните два подхода? Какой реюзабельней? Какой проще тестировать? const obj = { greeting: 'Hello', getGreeting(name) { return this.greeting + ' ' + name; } } ------ const generateGreeting = (greeting, name) => greeting + ' ' + name; const obj = { greeting: 'Hello', getGreeting(name) { return generateGreeting(this.greeting, name); } }
> Стрелочные функции как методы считай бесполезны (нет доступа к контексту С этого момента рассуждение неверно
Карамультук
а как верно?
Dmitry
@immuzov не вижу криминала в своих словах (в противном случае я бы конечно же этого не писал). Попробую чуть чуть подкрепить здравым смыслом. Стрелочные функции как методы считай бесполезны (нет доступа к контексту, а зачем нам метод без доступа к контексту). Но мне нравится писать стрелочные функции. Они получаются небольшими и конкретными (а в большинстве случаев еще и чистыми). Поэтому я хочу их продолжать использовать. И если мы пишем в смешанной парадигме ооп и фп, то использование стрелочных функций помогают принимать те или иные решения в пользу фп. Делают эти решения более очевидным. Сравните два подхода? Какой реюзабельней? Какой проще тестировать? const obj = { greeting: 'Hello', getGreeting(name) { return this.greeting + ' ' + name; } } ------ const generateGreeting = (greeting, name) => greeting + ' ' + name; const obj = { greeting: 'Hello', getGreeting(name) { return generateGreeting(this.greeting, name); } }
а контекст глянул ? не для этого js стрелочные ф-и родила
Dmitry
а ты там не юзал контекст. Ну это жесть. Так не делают мне кажется
Dmitry
и ща бы юзать ес5 в перемешку с ес6
Dmitry
1й вариант
Ivan
надо typescript using
Dmitry
ток еще string template а не просто конкантенация
Дима
а как верно?
class Foo { value: string = 'bar' method = () => this.value }
Dmitry
+ Я за ООП
ооп в джс. Его там нету. Все функции просо вызваны разным способом
Dmitry
это просто сахар
Dmitry
Да. Я как раз хочу чтобы меньше кода было
ты еще просто тру фп не видел D. Где там сова. Ща раскажет
Dmitry
ты не могешь D ?
Ivan
https://www.packtpub.com/sites/default/files/bookimages/1847194141.jpg
🍀 Max
OOJ ?
🍀 Max
LOL
Ivan
У меня и распечатанные такие есть
Ivan
https://www.packtpub.com/sites/default/files/9781849693127.png
Карамультук
class Foo { value: string = 'bar' method = () => this.value }
насколько я понимаю там тоже байндинг под капотом. https://babeljs.io/docs/plugins/transform-class-properties/
Ivan
Более того в ES3 - ES5 наследование организовано мощнее чем в большинстве популярных ООП языков
Ivan
функциональное программирование меня вводит в путаницу и снижает скорость разработки. ООП больше нравится.
Карамультук
попахивает холиваром)
Карамультук
ну или вкусовщиной
Anonymous
Ну, человеку нравится.
Anonymous
Вопрос времени.
Дима
так что достаточно противоречивое утверждение
Фраза про "не имеют доступ к контексту" просто не верна и это контрпример)