Илья Сименко

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

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

Utisci

    Денис Липовецкийje podelio/la utisakпре 2 године
    👎Možete propustiti

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

    Daria Diachkovaje podelio/la utisakпре 2 године
    👎Možete propustiti

    Ingrid Belanje podelio/la utisakпре 3 године
    👍Vredna čitanja

Citati

    Ingrid Belanje citiralaпре 3 године
    Грубо говоря, любой высокоуровневый язык — это зафиксированный на уровне компилятора или интерпретатора набор синтаксических карамелек и шоколадок
    Ingrid Belanje citiralaпре 3 године
    Список дополнительной литературы
    Javascript Closures
    JavaScript. Ядро
    Тонкости ECMA-262-3. Замыкания.
    Тонкости использования this
    ECMA-262-5 in detail. Lexical environments: Common Theory
    Learning Javascript with Object Graphs: часть 1, часть2, часть3
    Объектно-ориентированный Си (pdf)
    Основы и заблуждения насчет JavaScript
    Ingrid Belanje citiralaпре 3 године
    слово this указывает на текущий объект, что довольно очевидно в случае конструкторов и методов объектов. В случае вызова функции не как метода объекта, this по-умолчанию указывает на глобальный объект. Хотя создание, передача и возврат объектов, на которые указывает this, спрятаны внутрь интерпретатора, в методах call() и apply() остались торчать уши переменной currentObj из листинга 7: первый аргумент этих методов будет виден внутри вызываемой функции, как this.

Na policama za knjige

fb2epub
Prevucite i otpustite datoteke (ne više od 5 odjednom)