[Перевод] Как работает JS: классы и наследование, транспиляция в Babel и TypeScript

[Советуем почитать] Предыдущие 14 частей цикла

Часть 1: Обзор движка, механизмов времени выполнения, стека вызовов
Часть 2: О внутреннем устройстве V8 и оптимизации кода
Часть 3: Управление памятью, четыре вида утечек памяти и борьба с ними
Часть 4: Цикл событий, асинхронность и пять способов улучшения кода с помощью async / await
Часть 5: WebSocket и HTTP/2+SSE. Что выбрать?
Часть 6: Особенности и сфера применения WebAssembly
Часть 7: Веб-воркеры и пять сценариев их использования
Часть 8: Сервис-воркеры
Часть 9: Веб push-уведомления
Часть 10: Отслеживание изменений в DOM с помощью MutationObserver
Часть 11: Движки рендеринга веб-страниц и советы по оптимизации их производительности
Часть 12: Сетевая подсистема браузеров, оптимизация её производительности и безопасности
Часть 12: Сетевая подсистема браузеров, оптимизация её производительности и безопасности
Часть 13: Анимация средствами CSS и JavaScript
Часть 14: Как работает JS: абстрактные синтаксические деревья, парсинг и его оптимизация

В наши дни использование классов являются одним из самых популярных способов структурирования программных проектов. Этот подход к программированию применяется и в JavaScript. Сегодня мы публикуем перевод 15 части серии материалов, посвящённых экосистеме JS. В этой статье речь пойдёт о различных подходах к реализации классов в JavaScript, о механизмах наследования и о транспиляции. Начнём мы с рассказа о том, как работают прототипы и с анализа различных способов имитации наследования, основанного на классах, в популярных библиотеках. Далее мы поговорим о том, как, благодаря транспиляции, можно писать JS-программы, использующие возможности, которые либо отсутствуют в языке, либо, хотя и существуют в виде новых стандартов или предложений, находящихся на разных стадиях согласования, пока не реализованы в JS-движках. В частности, речь пойдёт о Babel и TypeScript и о классах ECMAScript 2015. После этого мы разберём несколько примеров, демонстрирующих особенности внутренней реализации классов в JS-движке V8.

image

Читать дальше →
[Перевод] Как работает JS: классы и наследование, транспиляция в Babel и TypeScript
Source: habrahabr

Пост №3552369

Автор: darth_vaderm/

ссылка на гифкуРазвернуть { «@context»: «http://schema.org», «@type»: «BlogPosting», «mainEntityOfPage»:{ «@type»:»WebPage», «@id»:»/post/3552369″ }, «headline»: «гифка :: собака (собакен, собакены, собаки, щенки, щенок, собака, ) :: фокус», «image»: { «@type»: «ImageObject», «url»: «http://img0.joyreactor.cc/pics/post/full/%D0%B3%D0%B8%D1%84%D0%BA%D0%B0-%D1%81%D0%BE%D0%B1%D0%B0%D0%BA%D0%B0-%D1%84%D0%BE%D0%BA%D1%83%D1%81-4554864.gif», «height»: 480, «width»: 480 }, «datePublished»: «2018-06-27T11:23:51+03:00», «dateModified»: «2018-06-27T11:23:51+03:00», «author»: { «@type»: «Person», «name»: «darth_vaderm/» }, «publisher»: { «@type»: «Organization», «name»: «JoyReactor.cc», «logo»: { «@type»: «ImageObject», «url»: «http://joyreactor.cc/images/joyreactor_ie6.png», «width»: 207, «height»: 54 } }, «description»: «» }
Комментировать 
Пост №3552369
Source: Joyreactor

Пост №3552367

Автор: mi001

Развернуть { «@context»: «http://schema.org», «@type»: «BlogPosting», «mainEntityOfPage»:{ «@type»:»WebPage», «@id»:»/post/3552367″ }, «headline»: «book :: meme :: Elder Scrolls :: drake», «image»: { «@type»: «ImageObject», «url»: «http://img0.joyreactor.cc/pics/post/full/meme-Elder-Scrolls-book-drake-4554862.jpeg», «height»: 647, «width»: 640 }, «datePublished»: «2018-06-27T11:22:30+03:00», «dateModified»: «2018-06-27T11:22:30+03:00», «author»: { «@type»: «Person», «name»: «mi001» }, «publisher»: { «@type»: «Organization», «name»: «JoyReactor.cc», «logo»: { «@type»: «ImageObject», «url»: «http://joyreactor.cc/images/joyreactor_ie6.png», «width»: 207, «height»: 54 } }, «description»: «» }
Комментировать 
Пост №3552367
Source: Joyreactor

Пульсация экранов телевизоров

У подавляющего большинства современных телевизоров экраны мерцают, причём уровень пульсации составляет 100% (экран полностью гаснет и загорается). Это может приводить к усталости глаз, головным болям и обострению нервных заболеваний.

Читать дальше →
Пульсация экранов телевизоров
Source: habrahabr

Цитата #451008

5ый день температурю, от кашля скоро выплюну легкие, стратегический запас салфеток и носовых платков подходит к концу, опустошены все заначки с таблетками, сиропами и каплями, проебаны все дела и выпито несколько сотен литров чая.
Не, со мной то все хорошо, я иду на поправку и уже через пару-тройку дней вернусь в строй…

Но если еще ХОТЬ ОДНА БЛЯДИНА пришлет мне рассылку со скидками в письме с заголовком БОЛЕЕМ ВМЕСТЕ — я сожгу нахуй ваш коммерческий отдел, а главного сэйлза посажу на кол.
Цитата #451008
Source: bash

Цитата #451007

Небольшое госпредприятие. Утро. Юбилей одного из сотрудников — всех собрали в актово зале, ждём только директора и юбиляра.
Входит директор, делает паузу, многозначительно смотрит и произносит: "Я сказал ДОБРОЕ УТРО!".
Коллектив почти хором: "Доброе утро!"
Безопасник: "Доброе утро, Каа!"
Цитата #451007
Source: bash

Пост №3552352

Автор: Djkrik

Развернуть { «@context»: «http://schema.org», «@type»: «BlogPosting», «mainEntityOfPage»:{ «@type»:»WebPage», «@id»:»http://anime.reactor.cc/post/3552352″ }, «headline»: «Adult pantsu :: oshiri :: Prinz Eugen :: Carnelian :: Anime Ero (Взрослые Няшки) :: Kantai Collection (KanColle) :: Anime Art (Аниме арт, Аниме-арт) :: Anime (Аниме)», «image»: { «@type»: «ImageObject», «url»: «http://img0.joyreactor.cc/pics/post/full/Anime-Adult-pantsu-Anime-Ero-oshiri-4554842.jpeg», «height»: 1026, «width»: 800 }, «datePublished»: «2018-06-27T11:10:09+03:00», «dateModified»: «2018-06-27T11:10:09+03:00», «author»: { «@type»: «Person», «name»: «Djkrik» }, «publisher»: { «@type»: «Organization», «name»: «JoyReactor.cc», «logo»: { «@type»: «ImageObject», «url»: «http://joyreactor.cc/images/joyreactor_ie6.png», «width»: 207, «height»: 54 } }, «description»: «» }
Комментировать 
Пост №3552352
Source: Joyreactor

Пост №3552351

Автор: TorturerPatriots

Развернуть { «@context»: «http://schema.org», «@type»: «BlogPosting», «mainEntityOfPage»:{ «@type»:»WebPage», «@id»:»/post/3552351″ }, «headline»: «крыса :: Смешные комиксы (веб-комиксы с юмором и их переводы)», «image»: { «@type»: «ImageObject», «url»: «http://img1.joyreactor.cc/pics/post/full/%D0%9A%D0%BE%D0%BC%D0%B8%D0%BA%D1%81%D1%8B-%D0%BA%D1%80%D1%8B%D1%81%D0%B0-4554841.jpeg», «height»: 604, «width»: 602 }, «datePublished»: «2018-06-27T11:10:06+03:00», «dateModified»: «2018-06-27T11:10:06+03:00», «author»: { «@type»: «Person», «name»: «TorturerPatriots» }, «publisher»: { «@type»: «Organization», «name»: «JoyReactor.cc», «logo»: { «@type»: «ImageObject», «url»: «http://joyreactor.cc/images/joyreactor_ie6.png», «width»: 207, «height»: 54 } }, «description»: «» }
Комментировать 
Пост №3552351
Source: Joyreactor

Пост №3552350

Автор: Djkrik

Развернуть { «@context»: «http://schema.org», «@type»: «BlogPosting», «mainEntityOfPage»:{ «@type»:»WebPage», «@id»:»http://anime.reactor.cc/post/3552350″ }, «headline»: «HongBsWs PATREON / Kiyohime (Fate/grand order) :: Anime Ero Swim :: Fate/Grand Order (Fate Grand Order, FGO) :: hong (white spider) :: Fate (series) (Fate (srs)) :: Anime Art (Аниме арт, Аниме-арт) :: Anime Ero (Взрослые Няшки) :: Anime (Аниме)», «image»: { «@type»: «ImageObject», «url»: «http://img0.joyreactor.cc/pics/post/full/Anime-Kiyohime-%28Fategrand-order%29-FateGrand-Order-Fate-%28series%29-4554840.png», «height»: 900, «width»: 630 }, «datePublished»: «2018-06-27T11:09:14+03:00», «dateModified»: «2018-06-27T11:09:14+03:00», «author»: { «@type»: «Person», «name»: «Djkrik» }, «publisher»: { «@type»: «Organization», «name»: «JoyReactor.cc», «logo»: { «@type»: «ImageObject», «url»: «http://joyreactor.cc/images/joyreactor_ie6.png», «width»: 207, «height»: 54 } }, «description»: «» }
Комментировать 
Пост №3552350
Source: Joyreactor

Пост №3552347

Автор: retroguy

МРТ лица Развернуть { «@context»: «http://schema.org», «@type»: «BlogPosting», «mainEntityOfPage»:{ «@type»:»WebPage», «@id»:»/post/3552347″ }, «headline»: «МРТ лица / слегка интересно :: медицина :: мрт :: лицо :: крипота», «image»: { «@type»: «ImageObject», «url»: «http://img1.joyreactor.cc/pics/post/full/%D0%BC%D1%80%D1%82-%D0%BC%D0%B5%D0%B4%D0%B8%D1%86%D0%B8%D0%BD%D0%B0-%D0%BB%D0%B8%D1%86%D0%BE-%D1%81%D0%BB%D0%B5%D0%B3%D0%BA%D0%B0-%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D0%B5%D1%81%D0%BD%D0%BE-4554837.jpeg», «height»: 512, «width»: 512 }, «datePublished»: «2018-06-27T11:03:40+03:00», «dateModified»: «2018-06-27T11:03:40+03:00», «author»: { «@type»: «Person», «name»: «retroguy» }, «publisher»: { «@type»: «Organization», «name»: «JoyReactor.cc», «logo»: { «@type»: «ImageObject», «url»: «http://joyreactor.cc/images/joyreactor_ie6.png», «width»: 207, «height»: 54 } }, «description»: «» }
Комментировать 
Пост №3552347
Source: Joyreactor