17

私は現在、私たちが持っているいくつかのJavascriptコードをリファクタリングしており、とりわけ、明らかにするモジュールパターンを利用するようにコードを変更しました。コードはかなりきれいに見え、正常に動作しますが、アウトラインビューに関数が表示されなくなりました。トップレベルの名前空間varをvarとして表示しますが、展開して内部の関数を表示することはできません。

以前は次のようになっていたコードを考えてみましょう。

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

この場合、アウトラインビューに両方の機能が表示されます。しかし、これに変更すると:

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

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

次に、アウトラインビューにmyNamespace変数が表示されます。探してみましたが、実際に階層を正しく表示するビューが見つかりません。誰かがこれを見る方法を知っていますか、それとも日食がこれを行うことができない場合ですか?

4

4 に答える 4

23

追加:

/**
 * @memberOf myNamespace
 */

階層を復元するための各関数定義の前。

コードを文書化するためのより興味深いタグがここにあります:
JavaScriptプロジェクトにJsDocを導入した方法–そしてEclipseのアウトラインを見つけました

于 2012-06-16T09:17:47.210 に答える
5

1つの方法はそれを以下のように呼ぶことです。そのまま定義しますが、自己実行しないでください。プロトタイプが空のオブジェクトであることを確認してから、呼び出してみてください。同じように機能しますが、アウトラインが復元され、すべての関数の前にコメントを追加する必要はありません。

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

  return {
    name: "myNamespace",
    myFunc1: myFunc1,
    myFunc2: myFunc2
  }
});
myNamespace.prototype = {};
myNamespace();
于 2012-08-21T19:18:27.590 に答える
2

アウトラインに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()の上に追加すると、ファイルを閉じて開いても、アウトラインに表示されません。

興味深いことに、私の20個ほどの関数のうち4つがアウトラインに表示されますが、機能するものと機能するものを除いて機能しないものの間に違いはありません(ただし、これを追加すると.dummy;目に見えない機能には役に立ちません)

このセミは機能します:myNameSpace.prototype = {}; myNameSpace;

ただし、このように関数を呼び出すことはできません。myNameSpace.myFunc1();

于 2013-01-24T22:57:30.913 に答える
0

私はEclipse/Keplerを使用しています。上からのアドバイスを使って、なんとか外形図を得ることができました。しかし、提案(Ctrl-スペース)は機能しませんでした。一部のfnは表示され、一部は表示されませんでした。検出するパターンはありません。

http://usejsdoc.org/#JSDoc3_Tag_Dictionaryを読んだ後、すべての@memberOfを@memberofに置き換えました。これで、すべてが期待どおりに機能します(次の問題が発生するまで...)

于 2013-12-05T22:30:23.107 に答える