Подтвердить что ты не робот

Как просмотреть схему в eclipse при использовании шаблона показательного модуля?

В настоящее время я рефакторинг кода Javascript, который у нас есть, и, кроме всего прочего, я изменил его, чтобы использовать раскрывающийся шаблон модуля. Код выглядит намного более аккуратным, и он отлично работает, но я больше не вижу функции в виде контура. Я вижу пространство имен верхнего уровня var как var, но вы не можете его расширить, чтобы увидеть функции внутри.

Давайте скажем, что код выглядел следующим образом:

function myFunc1() {}
function myFunc2() {}

В этом случае вы видите обе функции в виде схемы. Но если вы измените его на это:

var myNamespace = function()
{
  function myFunc1() {}
  function myFunc2() {}

  return {
    name: "myNamespace",
    myFunc1: myFunc1,
    myFunc2: myFunc2
  }
}();

Затем в виде контура отображается только myNamespace var. Я пробовал искать, но не могу найти представление, которое фактически покажет мне иерархию правильно. Кто-нибудь знает способ взглянуть на это или это случай, когда затмение не может это сделать?

4b9b3361

Ответ 2

один из способов - назвать его ниже. Определите это как есть, но не выполняйте его самостоятельно. Убедитесь, что прототип представляет собой пустой объект, а затем попробуйте его вызвать. Он работает одинаково, но восстанавливает контур, и вам не нужно добавлять комментарии перед каждой функцией.

var myNamespace = (function()
{
  function myFunc1() {}
  function myFunc2() {}

  return {
    name: "myNamespace",
    myFunc1: myFunc1,
    myFunc2: myFunc2
  }
});
myNamespace.prototype = {};
myNamespace();

Ответ 3

Не показывать myFunc1() и т.д. в контуре, кажется, ошибка, которая отмечена как фиксированная в 3.2. Однако в 4.2 это не зафиксировано. Это, безусловно, огромная боль при работе с очень большими файлами из сотен функций, и только имя var появляется в контуре. Я молюсь за то, чтобы он был исправлен.

https://bugs.eclipse.org/bugs/show_bug.cgi?id=236202

https://bugs.eclipse.org/bugs/show_bug.cgi?id=281374#c1

/**  * @memberOf myNamespace  */ Не работал у меня. Когда я добавляю это выше myFunc1(), он не отображает его в контуре, даже если я закрываю и открываю файл.

Интересно, что 4 из моих 20 или около того функций отображаются в контуре, но нет никакой разницы между теми, которые работают, и те, которые не за исключением тех, которые работают, имеют это .xxx в них (но если Я добавляю this.dummy; к невидимым функциям это не помогает)

Этот полурабочий:   myNameSpace.prototype = {};   myNameSpace;

Но тогда вы не можете называть свои функции таким образом: myNameSpace.myFunc1();

Ответ 4

Я работаю с eclipse/Kepler. Используя совет сверху, мне удалось получить схему. Но предложения (Ctrl-space) не сработали. Некоторые fn были видны, а некоторые нет. Нет шаблона для обнаружения.

После прочтения http://usejsdoc.org/#JSDoc3_Tag_Dictionary я заменил все @memberOf на @memberof, и теперь все работает так, как ожидалось ( "пока не возникнет следующая проблема"..)