2012-04-25 24 views
2

私はいくつかのJSファイルを持っています。最初のライブラリは次のライブラリで使用されるライブラリであり、これらのファイルのすべてには、そのファイルの関数を呼び出す関数main()があります。異なるファイルで関数を実行

lib.js =>ライブラリ

a.js ::メイン()=> a.js
b.js ::メイン()=> b.js
のコール機能のコール機能...
...

だから、私は(ロードlib.jsの後)機能これらのファイルのメインを実行しているのでしょう。

各機能の実行方法メインのJSファイルを読み込んだ後にはどうしますか?あなたは、使用依存性(負荷の順)を制御する必要がある場合
それはメイン、...

+0

質問を言い換えることができますか?何を手に入れますか? – Chris

答えて

2

JavaScriptはCまたは類似のものではありません。

機能を定義するファイルは関係ありません。この関数は上書きされます。だから、

あなたが最初のファイルa.jsをロードして、ファイルb.jsmain機能を使用すると、b.jsで定義されてきたし、あなたがa.jsで定義したmain機能はどこにも存在しませんmain関数となる場合。

古い関数を残したい場合は、各ファイルにオブジェクトを作成し、main関数を定義することをお勧めします。そうですね。

a.js

var a = {}; 
a.main = function() { 
    /* do stuff */ 
}; 

b.js

var b = {}; 
b.main = function() { 
    /* do stuff */ 
}; 

だから今、あなたが呼び出すことができます。

a.main(); 

b.main(); 
1

a.js負荷こととメイン、負荷b.jsを実行し、実行しますhead.jsまたはrequire.jsのようなものです。

ただし、すべてのJSファイルにグローバル関数名mainを再利用して、グローバル名前空間を汚染しないでください。グローバルな名前空間の汚染を避ける方法と、なぜそれが良いアイデアなのかについて、Web上にはたくさんのドキュメントがあります。それは簡単なウェブ検索です。ここでの回答で

さらに詳しい情報:How do I declare a namespace in JavaScript?

関連する問題