2009-03-14 5 views
0

私は1つのファイルにマージする3つのjavascriptファイルを持っています。すべてのコードを1つのファイルに貼り付けてコピーすることは可能ですか、名前空間の競合やその他の問題がありますか?JavaScript:問題なくファイルをマージしますか?

EDIT:各ファイルが各ファイルのコードをカプセル化する名前空間のように動作し、ファイルをマージするとこのカプセル化が終了することが心配です。

答えて

1

スクリプトファイルがすべて<head>にロードされていて、それらがHTMLに表示されたのと同じ順序で貼り付けられた場合、問題はありません。

は、それらすべての作業を順次ロードしたとき場合は、単一のファイルにそれらを連結する場合

+1

javascriptファイルの1つが破棄された場合、個々に含まれていると個々に無視されると思います。それをマージすると、マージ結果が破棄されます。これに対処するためにスクリプトの一部がロード/動作することを確認するテストをいくつか行う必要があります。 –

1

が、それは違いはありません...彼らはdocument.writeをを使用している場合、私はわからない、と言って、あなたの代わりにそれました。あなたが別々にロードするときと同じ順序で一緒に置くようにしてください。

0

試してみてください。 :)名前空間の競合はコードにのみ依存するので、それを掲示することなく、あなたに伝えるのは難しいでしょう。すでにエラーがない限り、1つのファイルに入れるのに問題はないはずですが、別のファイルに依存している場合は、正しい順序で入れてください。

1

編集の答え:いいえ、各ファイルは個別の名前空間として機能しません。

各ファイルの最上位レベルは、同じグローバル名前空間を共有します。したがって、3つすべてのコンテンツを持つ単一のファイルを持つことは、コンテンツが同じ順序で出現すると仮定して、それぞれ別々に参照することと同じです。

0

JavaScriptをネームスペースにカプセル化することは、あなたがそれを実現するためにあなたの道を離れない限り、絶対にありません。デフォルトでは、すべてがグローバル名前空間で終わります。 JavaScript module patternは、グローバルな名前空間の汚染を減らすのに役立ちます。

関連する問題