2014-11-19 3 views
0

Исходя из Java, Javascript может быть очень разочаровывающим.Откуда вы знаете, какие параметры следует задать для функции javascript?

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

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

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

myDOMItem.addEventListener("click", function(e){...}, false); 

В документации для этой функции (гиперссылкой имя выше) я не вижу каких-либо упоминаний этой опции. Если в Java вы можете легко узнать, соответствуют ли ваши параметры типу, особенно с хорошей IDE, в Javascript это кажется огромной гадательной игрой или требует глубокого знания каждой функции.

Как программисты Javascript это делают?

ответ

0

Документация вы связаны не отображает форму в вашем примере:

target.addEventListener(type, listener[, useCapture]); 

Параметр type является строка "click", listener функция объекта, и useCapture является false.

+0

Но откуда вы знаете, что может выглядеть «слушатель»? – CodyBugstein

+0

@ В этом документе также описывается это: «Объект, получающий уведомление при возникновении события указанного типа. Это должен быть объект, реализующий интерфейс EventListener или просто функцию JavaScript ». - в этом случае его просто функция JS – codebox

+0

«в этом случае это просто функция JS», но откуда вы узнаете, что параметры будут переданы ей? Где он говорит, что когда он вызывает вашу функцию, он передаст ему параметр? – CodyBugstein

0

Мы либо запоминаем вещи, либо получаем хорошую среду IDE, которая на самом деле имеет приличную поддержку. У каждого свой любимый, поэтому я не буду говорить, что есть «лучшая» среда IDE. По моему скромному мнению, Webstorm является одним из лучших.

0

В документации Mozilla четко указано, что функция принимает четыре аргумента:

  • строка (типа)
  • функции/реализатором EventListener (слушателя)
  • булево (useCapture).
  • boolean (wantUntrusted). Доступно только для браузеров Mozilla/Gecko.

Как вы можете видеть из подписи, последние два параметра являются необязательными и, следовательно, завернутые в скобках:

target.addEventListener(type, listener[, useCapture, wantsUntrusted ]); 

Для эффективного кода в JavaScript, необходимо организовать среду разработки, как и для Java. Java-мир предоставляет почти бесконечное количество инструментов для различных задач (разработка пользовательского интерфейса, разработка на стороне сервера и т. Д.). Такая же ситуация с JavaScript. Я хотел бы избежать рекламы для IDE/редакторов. Поэтому я советую вам использовать поиск, чтобы найти нужные инструменты для вашего dev-стека, связанного с JavaScript.

P.S. Личное мнение. Я также пришел к JavaScript с Java. По моему опыту, основной проблемой для разработчиков Java является не отсутствие инструментов, а отсутствие строгой структуры кода.Поскольку Java дает мощный опыт ООП, возможно, вам будет легче начать работать с JavaScript в терминах ООП. Хороший стек разработки для OOP-подобных JavaScript обеспечивается проектом с открытым исходным кодом Google Closure Tools.