Я относительно новый в javaScript, и я делал некоторое наследование. Я думал, что знаю, что такое прототип, но потом я встретился с методом uber. Теперь я не знаю разницы между этими двумя. Я знаю, что uber похож на супер в java и все. Но тогда прототип меня беспокоит. Если вы можете дать мне простой пример использования этих двух, я был бы очень признателен.
Разница в Javascript между uber и прототипом
Ответ 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
, вы можете взглянуть на этот вопрос.