4

CtrlNetBeansで+ClickまたはCtrl+を使用できることは知ってBいますが、JavaScriptファイルを作成しているときは機能しません。

そして、私だけではありません(残念ながら、その質問には回答がありません)。

ナビゲーターで機能を確認できますが、「宣言に移動」が使用できません。

私は自分の関数を次のように宣言しています:

function anyName(params...) { ... }

私はこのスタイルに変更してみました:

var anyName = function (params...) { ... }

しかし、それもうまくいきませんでした。

Netbeans6.9.1を使用しています。

より詳しい情報:

  1. NetBeansは、javascriptの「宣言に移動」をサポートしています。
  2. 私が言ったように、私はナビゲーターでそれを見ることができるので、関数は認識されます。
  3. Ctrl+を使用Oして関数を検索すると、NetBeansはそれを実行するとそれを見つけることができます。私は現在、これを「宣言に移動」の代わりとして使用しています。
  4. 私もコードを完成させていないことに気づきました。上記の例に従って、「an」(Ctrl+ )と書くと、多くの関数とメソッドが表示されますが関数( )Spaceが見つかりません。anyName

私は本当に間違ったことをしていると思いますが、何が起こっているのかわかりません。

4

2 に答える 2

2

簡単に言えば、NetBeansにはJavaScript用の優れたパーサーがないということです。JSは非常に緩く型付けされた言語であるため、関数の実際の定義を「移動」するのは非常に難しい場合があります。これらの例を見てください:

function callStuff(myFunc)
{
   myFunc(); //Where does this go?
}

callStuff(function () { window.alert(123); });

または:

var x = {
  X: function () { },
  Y: function () { },
};

x.Z = function () { };

x.Y(); //Where do I go?
x.Z(); //How about this?

または多分:

string s = "window.alert(123);";
var callback = Function(s);
callback(); //Now we just made a function with a string, weird..

ご覧のとおり、JavaScript IDEには、関数が定義されている場所を正確に把握するために、スクリプトの実行時の実行に関する膨大な知識が必要です。標準の構文または非常に明白な関数宣言を使用する場合、それをかなりうまく偽造するIDEがいくつかありますが、この分野で信じられないほど役立つものはまだありません。これは、Java中心のIDEであるため、NetBeansがサポートしようと努力したものではない可能性があります。

于 2011-11-02T21:26:30.287 に答える
1

問題は、すべてを「グローバル」として定義することにあるようです。独自の名前空間で作業する場合、つまり、グローバルオブジェクトを作成し、そこにすべてを定義する場合、Netbeansはコードがどこにあるかをよりよく理解でき、タイプヒントを提供することもできます。

于 2011-12-09T19:24:33.903 に答える