all-threads-bot

Frontender`s Spectre

[Timur Shemsedinov] πŸ§‘β€πŸ’» JavaScript: динамичСскоС созданиС классов для Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², схСм, DSL, сСмантики

13 июля 2026 г., 11:54

πŸ§‘β€πŸ’» Автор: https://github.com/tshemsedinov πŸ‘‰ ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π°: https://github.com/HowProgrammingWorks/Class πŸ‘‰ РСализация Struct: https://github.com/metarhia/metautil/blob/master/lib/struct.js πŸ‘‰ ИспользованиС Struct: https://gist.github.com/tshemsedinov/2a2226db79642bef55c2c32fdace078e πŸ‘‰ Π”Ρ€ΡƒΠ³ΠΈΠ΅ структуры Π΄Π°Π½Π½Ρ‹Ρ…: https://github.com/metarhia/metautil πŸ‘‰ ΠŸΠΎΠΏΠ°ΡΡ‚ΡŒ Π½Π° созвоны ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΡƒΡ‚: https://www.patreon.com/c/tshemsedinov Π’ Π²ΠΈΠ΄Π΅ΠΎ разбираСтся малоизвСстный способ создания JavaScript-классов с динамичСски вычисляСмыми ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ. Π Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ нСсколько Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ: Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ с вычисляСмым ΠΊΠ»ΡŽΡ‡ΠΎΠΌ, ΠΊΠΎΡ€ΠΎΡ‚ΠΊΡƒΡŽ запись, Π΄Π΅ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΈ Object.defineProperty. Показано, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ΅ имя класса Π²Π°ΠΆΠ½ΠΎ для stack trace, Π²Ρ‹Π²ΠΎΠ΄Π° Π² консоль ΠΈ мСтапрограммирования. ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ посвящСна Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ mutable ΠΈ immutable структур, runtime-ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ Ρ‚ΠΈΠΏΠΎΠ², опСрациям fork ΠΈ branch, ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠ½ΠΎΠΌΡƒ наслСдованию ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡŽ Ρ‚Π°ΠΊΠΈΡ… конструкций Π² ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ области. 00:00 ДинамичСскиС ΠΈΠΌΠ΅Π½Π° классов Π² JavaScript 01:00 Как JavaScript Π½Π°Π·Π½Π°Ρ‡Π°Π΅Ρ‚ имя классу 02:10 АнонимныС классы ΠΈ пустоС свойство name 02:44 Класс Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ с вычисляСмым ΠΊΠ»ΡŽΡ‡ΠΎΠΌ 03:48 Π—Π°Ρ‡Π΅ΠΌ динамичСскому классу настоящСС имя 04:34 ΠšΠΎΡ€ΠΎΡ‚ΠΊΠ°Ρ запись ΠΈ дСструктуризация 06:14 РСализация Ρ‡Π΅Ρ€Π΅Π· Object.defineProperty 07:23 Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ ΠΈ ограничСния статичСского поля 09:52 Stack trace, console.log ΠΈ сСмантика классов 10:42 ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ динамичСских классов 12:10 Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ immutable-класса Money 13:07 Runtime-ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ‚ΠΈΠΏΠΎΠ² 14:19 Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° metautil ΠΈ структуры Π΄Π°Π½Π½Ρ‹Ρ… 14:43 Fork для immutable-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² 15:31 Π Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ fork ΠΈ branch 16:21 ΠŸΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠ½ΠΎΠ΅ наслСдованиС Ρ‚Π΅ΠΌ 17:40 Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ mutable-структуры Task 18:38 ОбновлСниС ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ 19:44 Fork mutable-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° 20:43 Π˜ΠΌΠΌΡƒΡ‚Π°Π±Π΅Π»ΡŒΠ½Ρ‹Π΅ списки 22:23 Π—Π°Ρ‰ΠΈΡ‚Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ области 23:12 Π§Π΅Π³ΠΎ Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚ стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ JavaScript 24:09 Π˜Ρ‚ΠΎΠ³ΠΈ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² DSL