Разница в 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
Вы можете взглянуть на этот вопрос.