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

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

1 ответ

Решение

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

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

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


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

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

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

В таком случае вы могли бы использовать Дуглас Крокфордс uber метод доступа к Human реализация walk в Infant "учебный класс".


Для сравнения нативных скриптов JavaScripts prototype объект и Дуглас Крокфордс uber метод не имеет смысла, так как оба служат совершенно разным целям.

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

Другие вопросы по тегам