0

質問:-

同じ JavaScript ファイル内の別のスクリプトで定義された関数を、別のスクリプト内の別の関数から呼び出すにはどうすればよいですか?


説明:-

したがって、同じ JavaScript ファイル (default.aspx) に 2 つのスクリプトがあります。

jqueryを実行するスクリプトが1つあります...

$.Ajax { .... OnScucess: Onsuccess () function}

Onsuccess() { call another function called date_label() }

このdate_label()関数は別のスクリプトで定義されています...と呼ばれる関数があります

timeLine(){ within it is the function date_label() {....} }

関数で date_label を呼び出そうとするとOnsuccess()、明らかなエラー メッセージが表示されます - 未定義です。しかし、私はそれを機能させるために何らかの方法があるに違いないと信じています。何か案は?

私はこれを見ていました:-

http://answers.unity3d.com/questions/11206/call-a-function-in-a-different-script-using-javasc.html

しかし、スクリプトタグの名前がありません...

4

1 に答える 1

1

これを修正するにはいくつかの方法があり、そのすべてで のスコープを制御する必要がありますdate_label()。最も簡単な修正 (すぐに怒られるでしょう) は、date_label()グローバルにすることです。ファイルには、次のように記述します。

function date_label()
{
   // Implementation
}

この関数が別の関数など、別のスコープ内にネストされていないことを確認してください。が呼び出される前にこのスクリプト ファイルが読み込まれている限り、date_label問題はありません。.js関数が配置されている物理ファイルは、まったく関係ありません。

ただし、通常はグローバル スコープを汚染したくありません。このため、この関数を名前空間内に配置することをお勧めします。これは通常、単なるオブジェクト リテラルです。

var MyUtils =
{
   date_label: function ()
   {
      // Implementation
   }
};

次に、この関数を次のようにどこでも呼び出すことができます。

MyUtils.date_label();

ページ上にある可能性のある他のコードと競合しないように、アプリまたはライブラリの名前空間を定義するのが一般的な方法です。

于 2013-02-18T17:22:59.260 に答える