ru
Free
Илья Сименко

Замыкания и объекты JavaScript. Переизобретаем интерпретатор

Обычно концепции или парадигмы программирования объясняют либо описательно — «разжёвывая» новые идеи простыми словами, либо метафорически — уподобляя их хорошо знакомым аудитории предметам и понятиям. Но ни первый, ни второй способ не дает такого точного и полного представления о предмете, как взгляд с точки зрения низкоуровневой реализации.
Когда в изучении языка доходишь до нетривиальных вещей, бывает полезно сместить уровень абстракции, чтобы понять, как на самом деле всё устроено. Ведь, по большому счету, любые конструкции языков сколь угодно высокого уровня сводятся к старому доброму машинному коду. Писать в объектно-ориентированном или функциональном стиле можно и на чистом C, и даже на ассемблере. Грубо говоря, любой высокоуровневый язык — это зафиксированный на уровне компилятора или интерпретатора набор синтаксических карамелек и шоколадок. Повышение уровня абстракции позволяет писать более сложные программы с меньшими усилиями, но вот понять в начале пути, что конкретно имеется в виду под наследованием или замыканием, как это всё работает и почему, гораздо легче, разобравшись, каким образом всё это реализовано.
JavaScript, как никакой другой язык, нуждается в именно таком объяснении. Функциональная природа, скрытая за Си-подобным синтаксисом, и непривычная прототипная модель наследования поначалу сильно сбивают с толку. Давайте мысленно понизим уровень JavaScript до простого процедурного, наподобие Си. Отталкиваясь от этого «недоязыка», переизобретем функциональное и объектно-ориентированное программирование.
16 печатни страници
Вече чели ли сте я? Какво мислите за нея?
👍👎

Впечатления

  • Денис Липовецкийсподели впечатлениепреди 6 години
    👎Пропуснете я

    Это какая-то статья с Хабра, не адаптированная под книжный формат, да ещё и со вставленными комментариями с сайта.

  • dariadiaсподели впечатлениепреди 5 години
    👎Пропуснете я

  • Олег Андреевсподели впечатлениепреди 8 години
    😄LOLZ

На лавиците

fb2epub
Плъзнете и пуснете файловете си (не повече от 5 наведнъж)