Какой полиморфизм в JavaScript?

แชร์
ฝัง
  • เผยแพร่เมื่อ 26 ธ.ค. 2024

ความคิดเห็น •

  • @razrad3001
    @razrad3001 3 ปีที่แล้ว +91

    Это не дырка в экране, это курсор мыши черный.

    • @toriuz271
      @toriuz271 3 ปีที่แล้ว +2

      Черный треугольник с палкой ...

    • @Uni-Coder
      @Uni-Coder 3 ปีที่แล้ว

      Курсор, который видно сквозь дырку в экране.

    • @atticusbrentley8694
      @atticusbrentley8694 3 ปีที่แล้ว

      I guess it is kinda randomly asking but does anybody know of a good website to watch newly released tv shows online ?

    • @leonardharlan8666
      @leonardharlan8666 3 ปีที่แล้ว

      @Atticus Brentley lately I have been using flixzone. Just search on google for it =)

    • @briarimmanuel3156
      @briarimmanuel3156 3 ปีที่แล้ว

      @Leonard Harlan definitely, I've been using Flixzone for years myself :)

  • @imperror555
    @imperror555 3 ปีที่แล้ว +16

    Интересно увидеть разбор TypeScript и твоё мнение об этом суперсете JavaScript.

  • @norzqq
    @norzqq 3 ปีที่แล้ว +11

    Блин, соер, брат, ты крут. Как же я рад что давно наткнулся на тебя. Очень радуюсь каждому новому видосу так как знаю что контент всегда топовый. Спасибище тебе за работу

  • @TimurShemsedinov
    @TimurShemsedinov 3 ปีที่แล้ว +12

    Чтобы говорить про полиморфизм в JavaScript нужно обязательно вспомнить про скрытые классы и форму объектов. По дженерикам - нужно бы копнуть обобщенное программирование и работы Степанова (автора STL)

    • @S0ERDEVS
      @S0ERDEVS  3 ปีที่แล้ว +1

      Почему?

    • @TimurShemsedinov
      @TimurShemsedinov 3 ปีที่แล้ว +5

      ​@@S0ERDEVS ну потому, что на вход в функцию могут приходить утино-типизированные объекты, разной формы, но реализующие один и тот же интерфейс. Если форма одна - то код мономорфный, в байткоде не нужно проверять типы и делать условное приведение к нужным типам, если форм до 4 то создаются скрытые функции-дженерики, т.е. код один, а байткода несколько вариантов в зависимости от формы входных объектов, ну и если больше, то мегаморфная реализация, см. статьи Вячеслава Егорова (на хабре даже есть перевод одной из них про мономорфизм вот прямо).

    • @TimurShemsedinov
      @TimurShemsedinov 3 ปีที่แล้ว +3

      А обобщенное программирование - это нечто большее, все же, чем просто синтаксис дженериков, это идея полиморфного кода, одинакового с точностью до типов. Для JS это более чем актуально.

    • @S0ERDEVS
      @S0ERDEVS  3 ปีที่แล้ว +6

      @Timur Shemsedinov что-то тебя не туда понесло. Ты сейчас говоришь про оптимизацию производительности JS с использование мономорфного, полиморфного и мегаморфного кэша. Причем для этого используется понятие "формы", которая по сути является слепком данных, а не типом. И это не "утино-типизированные объекты", это любые объекты с разной реализацией, которые могут принадлежать к одному и тому же типу (классу). В данном случае понятие формы вообще никак не связано с полиморфным поведением кода. А связано с моноформами, т.е. с объектами с одинаковым составом полей и их значениями.
      Ну и в контексте JS фраза "одинакового с точностью до типов" бессмысленна, ты же сам сослался на то, что данные в JS определяются формами, а не типами. А форма - это не тип, это конкретная реализация типа с конкретными значениями. Это как раз поведение на основе реализации.

  • @MoDKona
    @MoDKona 3 ปีที่แล้ว +2

    Очень интересно было бы послушать объяснения про конкурентность, параллелизм, асинхронность и многопоточность и как они друг с другом связаны.

  • @wopox1337
    @wopox1337 3 ปีที่แล้ว +32

    я устал убирать курсор, а потом как понял.....

    • @purplep3466
      @purplep3466 3 ปีที่แล้ว +3

      что курсор имеет полиморфизм аналогичный JavaScript

    • @moizhirok
      @moizhirok 3 ปีที่แล้ว

      Это не первое видео такое)

  • @Boortwint
    @Boortwint 3 ปีที่แล้ว +3

    В JS можно реализовать функцию, которая не будет требовать приведения типов аргументов и будет всегда возвращать результат одного типа
    function(...args) {
    return [...args];
    }
    Означает ли это, что параметрический полиморфизм в JS таки есть?

    • @programmer403
      @programmer403 3 ปีที่แล้ว

      Нет конечно

    • @Boortwint
      @Boortwint 3 ปีที่แล้ว +1

      @@programmer403 ответ лаконичный, но ясности не вносит.

  • @КириллЧе-я5ы
    @КириллЧе-я5ы 3 ปีที่แล้ว

    Замечательный ролик. Кстати, в с++ и в scal‘е насколько мне видится, параметрический пол-зм реализован?..

  • @vovasokolov768
    @vovasokolov768 3 ปีที่แล้ว

    Темплейты C++ это чистый параметрический полиморфизм?
    Насколько я понимаю, то там на моменте компиляции создаются разные функции под разные типы и подменяются на конкретные внутри кода.
    И как дела обстоят у generic-ов в Rust-е? Там вроде алгебраичная система, то есть должно быть все "ровно", но на практике не уверен

  • @ccsfdsdsd2672
    @ccsfdsdsd2672 2 ปีที่แล้ว

    Полиморфизм - способность функции обрабатывать данные разных типов, наконец то понял как это на примере)

  • @zp00v0518
    @zp00v0518 3 ปีที่แล้ว +2

    Спасибо! В каких случаях может понадобится знания видов полиморфизма?

    • @bubblesort6368
      @bubblesort6368 3 ปีที่แล้ว +1

      Когда нужно блеснуть перед коллегами)

    • @Aleksei_Filatov
      @Aleksei_Filatov 3 ปีที่แล้ว

      На собеседовании, например

    • @S0ERDEVS
      @S0ERDEVS  3 ปีที่แล้ว

      для выведения типов, это один из мощнейших способов достижения типобезопасности и по сути "бесплатная верификация". В JS программист должен взять на себя обязанность по контролю типов (интерфейсов) чтобы программа не падала в рантайме.
      На практике понимание полиморфизма помогает правильно сделать утиную типизацию.

  • @ivangerasin8240
    @ivangerasin8240 3 ปีที่แล้ว

    А можно ссылки на материалы на счет того, почему дженерики это не параметрический полиморфизм, хочу понять в чем разница. Спасибо!
    Я так понимаю, для поддержки честного параметрического полиморфизма нужны классы типов (не помню точно как называется) как в хаскеле?

  • @romantiukh6753
    @romantiukh6753 3 ปีที่แล้ว +3

    Смотрел на телефоне, и сначала подумал что на нем грязь, а это курсор)

  • @hikkarion
    @hikkarion 3 ปีที่แล้ว +1

    А прототипное наследование, где можно переопределять методы потомков в цепочке прототипов и если функция будет принимать разные объекты и дёргать у них например метод, то будет вызываться либо переопределённый метод, либо браться выше в цепочке прототипов, это разве не полиморфизм подтипов?

    • @andreishostik
      @andreishostik 3 ปีที่แล้ว

      я назвал бы это перегрузкой, что опять указывает на ad-hoc. однако, после видео надо поднять конспекты и обновить информацию.

    • @borisn879
      @borisn879 3 ปีที่แล้ว

      Хотел то же самое спросить! Prototype и цепочка потомков - по сути, подтипы и реализация иерархии. Значит, полиморфизм подтипов?

    • @oleh914
      @oleh914 3 ปีที่แล้ว +1

      тогда возникает вопрос как определить принадлежность к супертипу без статической типизации? возвращаемся к adhoc?

    • @hikkarion
      @hikkarion 3 ปีที่แล้ว

      @@oleh914 Ну в джаве или шарпе используется таблица виртуальных методов, где ищется реализация, суть тот же поиск реализации в цепочке прототипов

  • @ksviety
    @ksviety 3 ปีที่แล้ว +2

    Попробуйте убавить голос на пару dB Low-Shelf'ом на 300-500 герцах. Так будет звучать чище и слушать будет приятней

  • @isfland
    @isfland 3 ปีที่แล้ว +1

    - Какой полиморфизм в JS?
    - А шиш его знает. Если так посмотреть, то такой, с другой стороны вот такой. Но мне кажется, что всё-таки вот такой

  • @Servant573
    @Servant573 3 ปีที่แล้ว +5

    Так и что мне делать с этой информацией теперь?

    • @vip51000
      @vip51000 3 ปีที่แล้ว +2

      Жить с этим

    • @Erudite.
      @Erudite. 3 ปีที่แล้ว +3

      *Servant573*
      Согласен с предыдущим оратором. Если Вы посмотрели это видео тогда уже ничего не поделаешь Вам придется с этим как-то жить. Обычно для большего количества просмотров авторы забывают сказать для кого предназначено их видео, или думают зачем говорить и так всё понятно. 🙂 В итоге начинающие и не очень начинающие разработчики прочли в названии javascript, подумали о тайные знания javascript-а можно постичь, а нет посмотрев видео подумали хрень какая-то. И правильно подумали. Это видео не про javascript, это видео о том как написать язык типа JS. Если Вы хотите написать интерпретатор тогда да Вам нужно знать какой полиморфизм бывает. А если Вы хотите писать на JS frontend or backend и не дай бог ещё используя фреймворк какой-то. Тогда данные знания для Вас избыточны и даже вредные. К примеру вам дали лопату выкопать яму но прежде сказали необходимо пройти курсы как образовался черенок в процессе эволюции и как зародились металлы, а также откуда взялась планета земля. И главное, что-бы яма была готова в кротчайшие сроки еще при вашей жизни.🤓 Если какой-то малоумный "гений" на собеседовании в компанию которая анимашки для кнопок производит спросит Вас какой полиморфизм в JS используется. Бегите оттуда там неадекваты они и съесть Вас могут, от таких чего угодно можно ожидать. 🏃‍♂️

  • @dmitryn.9765
    @dmitryn.9765 3 ปีที่แล้ว

    При написании кода на тайпскрипте, нативный полимарфизм яваскрипта утрачивается?

  • @DubinArtur
    @DubinArtur 3 ปีที่แล้ว +4

    То чувство, когда несколько раз протёр экран, а это не экран

  • @arsnazzz
    @arsnazzz 3 ปีที่แล้ว

    Будет что нибудь по с++?
    Уже было видео про подробный процесс компиляции программы
    И круто было бы в продолжение рассказать про one definition rule, что такое единица трансляции, как программа превращается в слабые / сильные слова и т. д
    Не видел такого контента на ютьюбе, а было бы интересно

  • @dmitry_kolom
    @dmitry_kolom 3 ปีที่แล้ว +3

    перфекционисты разбили монитор хотев убить муху, оказалось это был курсор

  • @romanradchenko3569
    @romanradchenko3569 3 ปีที่แล้ว

    Спасибо, иду с учёбы и тут годнота.

  • @компаниядоставкиЕдадомой.ру

    Подождите, а разве не было видео так же про полиморфизм, где параметрический был назван ad-hoc?

    • @S0ERDEVS
      @S0ERDEVS  3 ปีที่แล้ว

      Было видео где ad-hoc был назван частным случаем реализации параметрического полиморфизма через перегрузку функций.

    • @компаниядоставкиЕдадомой.ру
      @компаниядоставкиЕдадомой.ру 3 ปีที่แล้ว

      @@S0ERDEVS получается, что если развита система типов (частный случай - включение), то - можно получить "честный" параметрический (частный случай которого - ad-hoc), который, в свою очередь представляет из себя перегрузку и принудительное приведение. Верно ли, что деление на универсальный и ad-hoc можно свести к иерархии как частные случаи полиморфизма одного из другого?

    • @S0ERDEVS
      @S0ERDEVS  3 ปีที่แล้ว

      вопрос того, что ad-hoc - частный случай универсального не решен однозначно, поэтому трудно дать однозначный ответ.
      На данный момент я все же склоняюсь к мысли, что ad-hoc не связан с параметрическим полиморфизмом.

  • @ИванИванов-у3ч4м
    @ИванИванов-у3ч4м 3 ปีที่แล้ว +3

    Только на Соера надежда в этом бренном мире

  • @avazart614
    @avazart614 3 ปีที่แล้ว +1

    Почему именно js ? А не C++, Java, Python ? Или будет серия видео?

    • @375Snickers
      @375Snickers 3 ปีที่แล้ว

      Возможно, потому что js динамически типизирован

    • @sms4833
      @sms4833 3 ปีที่แล้ว +2

      Потому что он на нём работает

  • @isfland
    @isfland 3 ปีที่แล้ว

    Существует ли язык с честным параметрическим полиморфизмом?

  • @ni55an
    @ni55an 3 ปีที่แล้ว

    7:11 ууу.. началось 😄

  • @leshiq4214
    @leshiq4214 3 ปีที่แล้ว +1

    Вот я только только понял как работает полиморфизм в C++ и C#, вижу этот ролик, и думаю, ну сейчас я еще и в js разберусь. А тут фиг мне. Your level is too low. Come back later. В C++ и C# с помощью апкаста и виртуальных методов можно под один интерфейс клепать дочерки, меняя им метод на подходящий этой конкретной дочерке. Смотрел на extremecode и на канале одного чела, который показывает как делать разные простые игры на C++ и разное другое. И вот как такое в js реализовать? И вообще оно нужно в js или есть решение попроще? А тут SOER как завалил информацией, так у меня голова опять поломалась на середине ролика в попытке осознать о чем речь))

  • @Boortwint
    @Boortwint 3 ปีที่แล้ว

    А почему только 4 примитива в JS? Оператор typeof для значения null возвращает object, но это известная ошибка работы оператора typeof. null - это отдельный тип данных.
    Символ тоже к сложным типам данных не принадлежит. Это примитив.

    • @S0ERDEVS
      @S0ERDEVS  3 ปีที่แล้ว +1

      1. ситуация с typeof - это очень характерно для JS, сама философия языка такова, что типам в ней уделяется минимальное внимание. Я формально подошел к этому вопросу.
      2. Я руководствуюсь двумя правилами при определении примитивов:
      - примитив может быть представлен значением (литералом)
      - литерал должен быть равен сам себе.
      Если считать примитивами все базовые типы, то тогда все перечисленное в видео - это примитивы. Очевидно, что тогда лучше говорить "базовый тип/класс". Символ не ведет себя как примитив, он не может быть использован в большинстве операций, которые приняты над примитивами в JS, обладает своим собственным поведением. Интересно по каким принципам его можно отнести к примитивами?

    • @cheenanai3672
      @cheenanai3672 3 ปีที่แล้ว +2

      @S0ER интересно было вдуматься в Ваш ответ. В этом есть логика. Считаю, что это тот самый момент, когда можно по-разному дать определение примитиву, и все они могут быть аргументировано правильными. Например, на MDN говорится, что примитив - тип данных, который не может быть изменен (3-й абзац). По такому определению, действительно, все укладывается в популярное суждение о 7. В любом случае, это не так важно для меня) Не хочу ворошить тему, кто как представляет определение и какое истино.
      Мне больше интересно узнать в ознакомительных целях:
      1. как Вы пришли к данному определению примитива ?
      2. почему, если над примитивом нельзя выполнять большинство операций над примитивами, то он не является примитивом ? Возьмем string и num или num и boolean. Очевидно, что есть операции, которые возможны для одного типа, и невозможны для другого (деление с остатком). Получается, чем больше примитивных типов, тем больше расхождений в общих операциях над примитивами. Да и закономерности не видно. Как одно на другое влияет?
      3. если int - примитив, bigint - расширенная в диапозоне (кол-ве выделяемой памяти)версия int, то почему он уже не примитив?
      Заранее предупреждаю, что я не читал никакой профессиональной литературы, касающейся именно типов в ЯП. Не судите строго😁 Буду рад замечаниям

    • @S0ERDEVS
      @S0ERDEVS  3 ปีที่แล้ว

      На MDN пишут, что это примитивный тип, потому что в спецификации сказано, что этот тип "примитивный", тогда непонятно почему "Each Symbol value immutably holds an associated value called [[Description]] that is either undefined or a String value." Впервые слышу о примитивных типах, которые хранят значения других примитивных типов кроме собственного значения. Так что я могу лишь вернуться к тезису "сама философия языка такова, что типам в ней уделяется минимальное внимание"

    • @Boortwint
      @Boortwint 3 ปีที่แล้ว +1

      ​@@S0ERDEVSc typeof вообще непонятная история. Он для функции возвращает тип 'function', хотя в любой литературе о функциях как о типе не говорят, относя функции к объектам. Ведь для тех же массивов, множеств и мап typeof возвращает 'object'.
      По поводу определения примитивов. NaN - примитив. Но он не равен сам себе. Это правило равенства примитивных литералов в JS не работает. Хотя, возможно, исключение лишь подтверждает правило.
      Возможность создания примитива только с помощью вызова функции выглядит странно. Хранение дополнительных свойств в символе ещё больше вносит сумбур в попытку разобраться в сути вопроса.
      Для того, чтобы высказать свою точку зрения, для начала мне нужно уточнить определение понятия "Сложный тип". В большинстве литературы, когда речь идёт о сложном типе в JS, говорится об объекте. Всё, что не является объектом, считается примитивом. Я в своём видении ситуации буду руководствоваться этим утверждением.
      "В JS - всё есть объект" - также одна из самых популярных фраз в книгах о JS. Если обратить внимание на определение понятия в MDN "Объект - это набор свойств, и каждое свойство состоит из имени и значения, ассоциированного с этим именем", то можно смело говорить о том, что таки не всё в JS является объектами.
      Попытка задать свойство undefined вызовет исключение. Остальным примитивам можно задать свойство, но оно не будет сохранено, так как для примитивов используется оборачивание в объект, который благополучно удалится после проведения операции присваивания. Получается, что примитивы точно не являются объектами. Да, ими можно манипулировать как объектами, но объектами они не являются.
      С символом такая же ситуация. В него нельзя записать свойство, которое будет сохранено. То есть символ не является объектом в понимании JS. А то, что не объект, в JS считается примитивом.
      P.S. Поддержу вопрос, оставленный выше. Что по поводу bigint? Литерал есть, два литеральных значения равны друг другу. Почему этот тип в Вашем понимании является сложным, если он попадает под Ваши правила определения примитивов?

    • @Boortwint
      @Boortwint 3 ปีที่แล้ว

      @@cheenanai3672 определение примитива на MDN действительно вносит ясность в вопрос. Но как быть с Object.freeze? Я не думаю, что объектный тип станет примитивом после того, как его нельзя будет изменить.

  • @Boortwint
    @Boortwint 3 ปีที่แล้ว +1

    Всегда подозревал, что определение полиморфизма подтипов как возможность объектов с одинаковой спецификацией иметь различную реализацию - это не то, то нужно. Это как как когда полиморфизм называют наследованием. Кстати, цитата из статьи о полиморфизме на википедии: "В сообществе объектно-ориентированного программирования под термином «полиморфизм» обычно подразумевают наследование" ©
    На самом деле, оказывается, что наследование только позволяет реализовать полиморфизм, но никак им не является.
    Так и особенности объектов, классы которых образуют иерархию, не являются определением понятия полиморфизма подтипов. Полиморфизм подтипов - это действительно частный случай параметрического полиморфизма, когда функция обрабатывает значения, находящиеся в отношении иерархии тип - подтип. И подходить под требования полиморфизма включения такой функции как раз и позволяет возможность объектов разных типов иметь одинаковый интерфейс. Реализация же может быть как одинаковой, так и различаться от класса к классу.
    Код такой функции может обрабатывать значения разных типов без условий и приведения типов. Всё как в истинном (универсальном) полиморфизме. Конечно, нужно учитывать принцип подстановки Лисков. Наследуемые классы должны соблюдать этот принцип, иначе функция, обрабатывающие экземпляры таких классов, может оказаться неполиморфной из-за неподходящих типов значений, возвращаемых методами дочерних классов

  • @МаксимХвостов-м1й
    @МаксимХвостов-м1й 3 ปีที่แล้ว

    Я тут натыкал: Полиморфизм произошёл от Греческого поли - много, морф - форма, суффикс -ик - сделан из. Polymorphic - сделан из многих форм. Monomorphic - сделан из одной формы.

  • @maxsolovyov436
    @maxsolovyov436 2 ปีที่แล้ว

    После того, как у Drink появилась буква C, подумалось про паттерн Command

  • @alex330k47
    @alex330k47 3 ปีที่แล้ว +2

    Кровь с глаз!!! Это как родинка на лице на которую стараешься не смотреть при разговоре, но думаешь только о ней

  • @maybe8037
    @maybe8037 3 ปีที่แล้ว

    Лайк за курсор

  • @andreysakharov6210
    @andreysakharov6210 3 ปีที่แล้ว

    это интересно

  • @ak4nv
    @ak4nv 3 ปีที่แล้ว +4

    Или во мне много пива, или я безнадёжно тупой... 😐
    P.S. Курсор с экрана тоже смахивал... 🤦

  • @demimurych1
    @demimurych1 3 ปีที่แล้ว +5

    *Abstract*
    Я не очень понимаю, каким образом можно рассуждать о реализации той или иной
    концепции в языке, при этом не ориентируясь в фундаментальных основах самого
    языка.
    Ниже, я хочу продемонстрировать, что автор видео, возможно делая верные выводы о
    заявленной теме, демонстрирует это на совершенно неверной машинерии языка.
    Но более этого мне не вполне понятно, зачем вообще концептуально сравнивать
    что-то, чему дай бог чтобы было 30 лет отроду, с тем, что строится на принципах
    которым было уже около 20 лет на момент рождении, а сейчас уже почти 60 лет.
    Иными словами полиморфизм, как концепция, с точки зрения программирования в его
    академическом смысле, является ущербным направлением в любых его проявлениях. И
    совершенно неважно какого сорта этот самый полиморфизм. Потому как если в бидон
    варенья, добавить всего маленькую чайную ложечку го@#на,, то мы получим целый
    бидон того самого полиморфизма.
    Оно то может быть и очень любопытно, что и как куда полиморфирует, вот только
    варенья от этого у нас стало гораздо меньше. А именно на целый бидон.

    6:40 *тип symbol*
    Этот тип существует под капотом языка с бог знает каких времен. С ним все
    сталкивались постоянно, облизывались и требовали.
    Сейчас потребности пользователей языка достигли уровня, когда ему дали
    интерфейс.

    7:03 *Смотрим как это делается на уровне*
    У меня для Вашего видео плохие новости:
    typeof, не смотря на свое название, не возвращает тип идентификатора. И никогда
    не возвращал.
    Все идентификаторы в JS одного типа, потому они и идентификаторы.
    typeof это унарный оператор возвращающий строковые значения в соответствии с:
    A) предорпеделенной таблицей условий в случае родных обьектов,
    Б) что угодно что захотел разработчик в случае неродных обьектов.
    Это поведение закреплено спецификацией с момента ее, спецификации появления.
    *Игого*
    К сожалению у меня нет сил и времени дальше разбирать то что вы
    нагородили. Потому сразу ИГОГО
    В JavaScript полиморфизма нет вообще. И никогда не было. Как нет и никогда не
    было примитивных типов.
    В JavaScript все - это объекты. Боже Вас упаси думать о них как о обьектах в класс ориентированно стиле.
    В JavaScript никогда классов не было и нет сейчас. Не смотря на присуствия солва Class которое является почти
    синтаксическим сахаром к прототипной модели.
    Идентификаторы это ссылки на эти объекты.
    Исключением можно назвать целые числа укладываемые в пределах 31 бита.
    Да и то, они существуют только потому что V8 хотели сделать очень быстрым.
    Ну и на закуску, есть еще типизированные массивы. Которые должны были дать понять,
    что весь поток сознания из видео вообще яйца выеденного не стоит. Даже не зная что делает typeof

    • @S0ERDEVS
      @S0ERDEVS  3 ปีที่แล้ว

      "Оператор typeof возвращает строку, указывающую тип операнда."
      developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Operators/typeof
      Не надо делать таких долгих вступлений, это называется бульверизм и считается мувитоном. Про typeof я знаю о чем вы говорите, но в контексте данного видео это вообще не существенно.
      UPD. по поводу примтивных типов - developer.mozilla.org/ru/docs/Web/JavaScript/Data_structures
      Если что-то хотите сказать по делу, давайте лучше ссылку на доку, я не могу дешифровать ваши мысли. Какой-то сбой в терминологическом аппарате, Вы самоучка что-ли?

    • @AsForJS
      @AsForJS 3 ปีที่แล้ว +1

      ​@@S0ERDEVS Вот мы и дожили до момента, когда программисту, который настаивает на своей компетентности, нужно давать ссылку на официальную спецификацию языка.
      Судя по тому, что вы даете ссылку на mdn, спецификацию Вы в глаза никогда не видели. Мне не трудно вам подсказать. Есть такая организация - ecma. Она занимается спецификацией всех частей языка и публикует ее официально. А с 2009 года, если не ошибаюсь, хранит архивы.
      Так вот если Вы сподобитесь найти ее сайт, а на нем ту самую официальную спецификацию то в первую очередь рекомендую прочитать:
      Главу 4.4. *Terms and Definitions* а именно главу 4.4.5 *primitive value*. Сразу обозначу, что спецификация практически любого языка программирования содержит подобное описание. И коль Вы уж с ним не знакомы, я рискну предположить что Вы вообще никогда ни одной спецификации не читали. Что для программиста отрицательное качество. Будете спорить?
      Далее, Вам следует прочитать всю главу 6 *ECMAScript Data Types and Values*. Обратить особое внимание на раздел о идентификаторах. Ну и на закуску главу 13 *ECMAScript Language*, если быть точнее ее часть о унарном операторе typeof.
      Ну и в целом, очень рекомендую прочитать ее всю. Потому как Вам крайне будет полезно для своего развития, узнать, что в JavaScript все данные имутабельны. То есть и речи быть не может о полиморфизме.
      Хуже воинствующего невежества, может быть только невежество водрузившее себя на трибуну. Научитесь признавать свои ошибки. И тогда, возможно, из вас получиться специалист.

    • @S0ERDEVS
      @S0ERDEVS  3 ปีที่แล้ว

      @Околовсяческий JavaScript с DemiMurych - ем
      Судя по положению звезд на небе у вас что-то не то с головой ) Вижу что вам интересно обсасывать мою личность, а не обсуждать технические моменты. По опыту знаю, что разговор ничего не даст, поэтому всего хорошего.

    • @demimurych1
      @demimurych1 3 ปีที่แล้ว +1

      ​@@S0ERDEVS Вам не откажешь в трезвомыслии. Действительно на месте человека у которого нет возможности полагаться на свою экспертизу, самым правильным является апеллировать к невменяемости оппонента.
      Ни у кого не было сомнений, что это аутодафе вам не по зубам. Были надежды, что Вас волнует что-то кроме собственного лица.
      Всего наилучшего.

    • @gnom-om
      @gnom-om ปีที่แล้ว +2

      @@S0ERDEVS почему вы даете ссылки не на спецификацию?

  • @borisn879
    @borisn879 3 ปีที่แล้ว

    const someFunc = (a,b)=>{ return a +b; } выглядит как параметрический полиморфизм? someFunc(1,2) => (int) 3; someFunc('что', 'где') => (string) 'что где';

    • @S0ERDEVS
      @S0ERDEVS  3 ปีที่แล้ว

      если сможете обобщенно описать тип результата функции (a,b) => a+b, то будет параметрическим, но в JS этого сделать нельзя, так как "+" реализован через ad-hoc и может вести себя как угодно, начиная от выбрасывания исключений, заканчивая выдачей произвольного типа.

    • @borisn879
      @borisn879 3 ปีที่แล้ว +1

      @@S0ERDEVS Спасибо! Получается, полиморфизм рассматривается "под капотом" в исходниках языка? Вероятно, я путаю с "полиморфизмом", который реализует программист в рамках самого ЯП с его возможностями и ограничениями.

    • @S0ERDEVS
      @S0ERDEVS  3 ปีที่แล้ว

      @S0ER функция (a, b) => a+b не может обработать любые типы a, b поэтому это не параметрический полиморфизм. А чтобы разобраться почему не может, нужно уже копать "под капотом".

  • @cofriQue
    @cofriQue 3 ปีที่แล้ว +4

    Дед, сделай на своих роликах громкость побольше, пожалуйста

  • @boriskrause7478
    @boriskrause7478 3 ปีที่แล้ว

    у меня завис курсор

  • @lycan9590
    @lycan9590 3 ปีที่แล้ว

    Сотонизм и сектанство какое-то ... На самом деле большое спасибо, было очень любопытно и интересно. C# Мидл

  • @neshkeev
    @neshkeev 3 ปีที่แล้ว

    Соеру бы почитать "типа в языках программирования" Бенджамина Пирса

    • @S0ERDEVS
      @S0ERDEVS  3 ปีที่แล้ว +2

      Я читал эту книгу, она довольно старая. Там про типы тоже самое говорится. В чем смысл совета?

  • @romanenkoonline
    @romanenkoonline 2 ปีที่แล้ว +1

    Я думал, узнаю что такое полиморфизм и для чего он нужен 🙄

  • @OlegHolovko
    @OlegHolovko 3 ปีที่แล้ว

    Хотел создать дату из дейтпикера и охреневал от происходящего: new Date(dateParts[2], dateParts[1] - 1, parseInt(dateParts[0],10) + 1)

  • @bubblesort6368
    @bubblesort6368 3 ปีที่แล้ว

    Птичку жалко( на глобус, как так-то!

  • @bublik20
    @bublik20 3 ปีที่แล้ว

    Судя по курсору мышки ubunty

  • @ericraudy
    @ericraudy 3 ปีที่แล้ว

    глубоко копнул, годно

  • @vovasokolov768
    @vovasokolov768 3 ปีที่แล้ว

    Алгебраичная система типов вышла из комнаты...

  • @Acid31337
    @Acid31337 3 ปีที่แล้ว +2

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

  • @gubatenkov
    @gubatenkov ปีที่แล้ว

    а шо так мало лайков?

  • @pavlomiklashevych1758
    @pavlomiklashevych1758 3 ปีที่แล้ว +1

    Натянули сову на глобус? 🦉

  • @shokfake
    @shokfake 3 ปีที่แล้ว

    У тебя муха))

  • @Niakita
    @Niakita 3 ปีที่แล้ว

    Зачем нужно знание полиморфизма в JavaScript, если в нём динамическая типизация, и итак всё работает?

  • @chelmyaso
    @chelmyaso 3 ปีที่แล้ว

    Никакой?

  • @itforall89
    @itforall89 3 ปีที่แล้ว

    мушка

  • @eugeeeneeee
    @eugeeeneeee 3 ปีที่แล้ว +2

    Говорим ни0чем!