Разница в Javascript между uber и прототипом

Я относительно новый в javaScript, и я делал некоторое наследование. Я думал, что знаю, что такое прототип, но потом я встретился с методом uber. Теперь я не знаю разницы между этими двумя. Я знаю, что uber похож на супер в java и все. Но тогда прототип меня беспокоит. Если вы можете дать мне простой пример использования этих двух, я был бы очень признателен.

Ответ 1

uber - это всего лишь метод сахара, который Дуглас Крокфорд создал в своих примерах наследования в JavaScript, который должен помочь devoloper при работе с очень гибким характером прототипного наследования JavaScripts.

Этот метод не существует в родном JavaScript.

Он объясняет методы, которые он использует подробно здесь.


В своих примерах он определяет метод uber как вспомогательный метод для доступа к родительской реализации метода.

Предположим, что у вас есть "класс" (я использую этот термин для упрощения примера, строго говоря, в JavaScript нет классов) Human, который имеет метод walk. Если вы теперь "расширяете" этот класс в классе Infant, вы можете перезаписать walk таким образом, чтобы ребенок только просканировал, так как он не может ходить.

Это, очевидно, не очень хороший пример, но я надеюсь, что вы поняли.

В таком случае вы можете использовать метод Douglas Crockfords uber для доступа к Human реализации walk в классе Infant ".


Для сравнения JavaScripts native prototype object и Douglas Crockfords uber метод не имеет смысла, поскольку обе служат совершенно разными целями.

Если вам нужна дополнительная информация о JavaScripts prototype, вы можете взглянуть на этот вопрос.