私は1つのファイルにマージする3つのjavascriptファイルを持っています。すべてのコードを1つのファイルに貼り付けてコピーすることは可能ですか、名前空間の競合やその他の問題がありますか?JavaScript:問題なくファイルをマージしますか?
EDIT:各ファイルが各ファイルのコードをカプセル化する名前空間のように動作し、ファイルをマージするとこのカプセル化が終了することが心配です。
私は1つのファイルにマージする3つのjavascriptファイルを持っています。すべてのコードを1つのファイルに貼り付けてコピーすることは可能ですか、名前空間の競合やその他の問題がありますか?JavaScript:問題なくファイルをマージしますか?
EDIT:各ファイルが各ファイルのコードをカプセル化する名前空間のように動作し、ファイルをマージするとこのカプセル化が終了することが心配です。
スクリプトファイルがすべて<head>
にロードされていて、それらがHTMLに表示されたのと同じ順序で貼り付けられた場合、問題はありません。
が、それは違いはありません...彼らはdocument.writeをを使用している場合、私はわからない、と言って、あなたの代わりにそれました。あなたが別々にロードするときと同じ順序で一緒に置くようにしてください。
試してみてください。 :)名前空間の競合はコードにのみ依存するので、それを掲示することなく、あなたに伝えるのは難しいでしょう。すでにエラーがない限り、1つのファイルに入れるのに問題はないはずですが、別のファイルに依存している場合は、正しい順序で入れてください。
編集の答え:いいえ、各ファイルは個別の名前空間として機能しません。
各ファイルの最上位レベルは、同じグローバル名前空間を共有します。したがって、3つすべてのコンテンツを持つ単一のファイルを持つことは、コンテンツが同じ順序で出現すると仮定して、それぞれ別々に参照することと同じです。
JavaScriptをネームスペースにカプセル化することは、あなたがそれを実現するためにあなたの道を離れない限り、絶対にありません。デフォルトでは、すべてがグローバル名前空間で終わります。 JavaScript module patternは、グローバルな名前空間の汚染を減らすのに役立ちます。
javascriptファイルの1つが破棄された場合、個々に含まれていると個々に無視されると思います。それをマージすると、マージ結果が破棄されます。これに対処するためにスクリプトの一部がロード/動作することを確認するテストをいくつか行う必要があります。 –