home.social

#замыкания — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #замыкания, aggregated by home.social.

fetched live
  1. Модель исполнения JavaScript по спецификации ECMAScript: call stack, контексты, окружения и замыкания

    Я довольно долго был уверен, что понимаю, как работает call stack. Ну а что там понимать? Положил кадр, снял кадр, LIFO. Потом открыл спецификацию. Оказалось, за «стеком вызовов» стоит каркас из пяти сущностей, а половина привычных объяснений просто не совпадает с текстом стандарта. Замыкание — не фича языка, а побочный эффект того, что окружение живёт отдельно от кадра. «Область видимости» — вообще не сущность: такого термина там нет. А слов event loop, microtask и task queue в ECMA-262 ровно ноль. Проверяется грепом за минуту. Разбираю модель исполнения по первоисточнику: агент, контекст, окружения, джобы. Каждое утверждение сверено с текстом стандарта, номера параграфов проставлены — можно перепроверять за мной. Разобрать по спецификации

    habr.com/ru/articles/1063168/

    #JavaScript #ECMAScript #execution_context #контекст_выполнения #замыкания #область_видимости #ECMA262 #call_stack #event_loop #лексическое_окружение

  2. Утечки памяти в замыканиях JavaScript

    В предыдущей статье мы подробно рассмотрели замыкания в JavaScript, а сейчас изучим как из-за них возникают утечки памяти и как этого избежать. Замыкание существует пока, есть хоть одна ссылка на функцию создавшею его. Если быть неосторожным, это может привести к утечкам памяти: когда объект уже не используется в программе, но сборщик мусора не может его удалить. Такие ссылки могут быть неочевидными... Что за неочевидные ссылки?

    habr.com/ru/articles/1020246/

    #замыкания #утечки_памяти #javascript #nodejs

  3. Замыкания в JavaScript

    Замыкание это важный механизм JavaScript, понимание которого обязательно фронтендера. Он позволяет изящно реализовать принцип наименьшего раскрытия, благодаря инкапсулированию функций, сохраняя их состояние во внутренней области видимости, для последующего использования. Подробнее о замыканиях

    habr.com/ru/articles/1017374/

    #замыкания_в_javascript #замыкания

  4. Замыкания, декораторы и nonlocal в Python: Путешествие от переменной до элегантного кода

    Python славится своей гибкостью. Мы можем передавать функции как аргументы, возвращать их из других функций и даже "записывать" внутрь них состояние. Но как это работает под капотом? И при чем тут странное слово nonlocal ? В этой статье мы проследим эволюцию: начнем с глобальных переменных, разберемся с замыканиями (closures), поймем магию nonlocal , а затем соберем всё это вместе, чтобы понять, как работают декораторы — один из самых элегантных механизмов Python.

    habr.com/ru/articles/1009132/

    #python #global #декораторы #замыкания #функции #nonlocal

  5. Closure::bind() и bindTo() в PHP

    Привет, Хабр. В этой статье рассмотрим, как в PHP управлять контекстом замыканий: подменять $this, менять область видимости, получать доступ к приватным свойствам, оборачивать методы, реализовывать мини-AOP и использовать замыкания как ленивые фабрики в DI-контейнерах.

    habr.com/ru/companies/otus/art

    #php #замыкания

  6. Путаясь в замыканиях

    В комментах к статье " Синглтон - корень всех зол ", который вообще-то про паттерн проектирования, я высказал мысль, что в функциональном программировании " все функции - синглтоны " (это уже в смысле lifestyle - больше одной функции на приложение не нужно). Тут же мне более опытные коллеги насовали в панамку, что " функции не синглтоны, потому что существуют замыкания ". Я, конечно, " сварщик не настоящий " - в ФП серьёзно никогда не игрался, но основные идеи вроде как у всех на слуху: неизменяемость данных, чистота функций, функция как аргумент / результат другой функции. На мой субъективный взгляд, при таких вводных, нет никаких доводов за то, чтобы в приложении иметь более одного экземпляра чистой функции. Какой смысл иметь два экземпляра функции, если она не имеет побочных эффектов - для одних и тех же входных данных всегда возвращает один и тот же результат, вне зависимости от внешних условий? Ну? Вот и я думаю, что никакого. Тем не менее, мысль про замыкания надо было как-то подумать - не, ну а вдруг?! Под катом я привожу результаты своих изысканий на примере очень простого функционала на JS, написанного в трёх разных стилях.

    habr.com/ru/articles/875608/

    #фунциональное_программирование #процедурное_программирование #замыкания #шаблоны_проектирования #внедрение_зависимостей #ооп

  7. [Перевод] Замыкания в Python: примеры использования

    В Python замыкание — это функция, которая определяется и возвращается из другой функции. Эта вложенная функция может сохранять объекты, определенные в нелокальной области видимости непосредственно перед ее определением, что позволяет ей использовать эти переменные даже после завершения выполнения внешней функции. Замыкания часто используются в функциональных языках программирования. Python их поддерживает, замыкания в нём могут быть очень полезными, так как они, например, позволяют создавать декораторы на основе функций. В этой статье мы:

    habr.com/ru/articles/862692/

    #python #руководство #туториал #замыкания #декораторы #основы_python #основы_программирования #туториал_по_python

  8. Область видимости и замыкания в JavaScript

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

    habr.com/ru/articles/828618/

    #замыкания #область_видимости #javascript

  9. [Перевод] Красота замыканий

    До того, как Java 7 вышел, я хотел написать в своем блоге статью о различных предложениях для Java 7, касающихся замыканий. Однако, когда я начал писать эту статью, я обнаружил, что начать ее без какого-либо введения в замыкания очень трудно. Со временем введение стало настолько длинным, что я опасался утратить интерес большинство читателей еще до того, как я доберусь до темы Java 7. Я решил, что вместо этого стоит написать отдельную статью о замыканиях в целом. В итоге получилось, что статья о Java 7 в моем блоге так и не появилась. Большинство статей о замыканиях написаны с точки зрения функциональных языков, поскольку именно они, как правило, могут похвастаться лучшей поддержкой замыканий. Однако именно поэтому я счел полезным написать статью о том, как они проявляются в более традиционных объектно-ориентированных языках. Скорее всего, если вы пишете на функциональном языке, вы уже знаете о них все, что вам нужно. В этой статье речь пойдет о C# (версии 1, 2 и 3) и Java (до версии 7).

    habr.com/ru/companies/otus/art

    #c# #java #closures #замыкания

  10. Замыкания и декораторы в Python: часть 1 — замыкания

    Впервые столкнувшись с концепцией замыканий, я мало что понял, и мне потребовалось потратить какое-то время на поиск и изучение дополнительных материалов, чтобы разобраться. Если у вас возникли те же проблемы, я постараюсь коротко, но понятно объяснить эту тему.

    habr.com/ru/articles/781866/

    #python #замыкания #closure

Share on Mastodon

Enter the server where you have an account.