動的に挿入された JavaScript ファイルを名前空間にすることは可能ですか?
script
タグを作成して DOM に挿入することでJavaScript ファイルを動的にインクルードできることは知っていますが、このインクルード ファイルに名前空間を付けることはできますか? したがって、ファイルに という関数がある場合、bar
名前空間を介してアクセスしたいと思います。foo
foo.bar()
動的に挿入された JavaScript ファイルを名前空間にすることは可能ですか?
script
タグを作成して DOM に挿入することでJavaScript ファイルを動的にインクルードできることは知っていますが、このインクルード ファイルに名前空間を付けることはできますか? したがって、ファイルに という関数がある場合、bar
名前空間を介してアクセスしたいと思います。foo
foo.bar()
はい、CommonJS Modules/1.1はそれを行う方法を 1 つしか指定していません。
私はサーバー側の Node.js でのみ使用しましたが、CommonJS 準拠のブラウザーで動作するように作成された他のライブラリーがあると思います。サーバー/ブラウザーには複数のモジュール仕様があることに注意してください (まだ掘り下げていません)。
モジュールは、他の JavaScript と同じように記述されます。唯一の追加は、公開したいものをエクスポートすることです。
module.exports.bar = Bar;
function Bar() {
// code
}
そして使用法:
var foo = require('mymodule');
foo.bar();
バックグラウンドで実際に行われることは、コード全体が別の関数にラップされ、エクスポートがそのプロパティです。
また、Michael Bolin は JSConf での 'with' キーワードに関する講演で、同様の問題について話しました。
ファイル自体を変更せずに、動的にロードしながら、そのファイルで定義されているすべてのものに名前空間を追加するつもりなら、答えはノーです。