問題タブ [javascript-namespaces]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - モジュールをjsdocの名前空間に割り当てるにはどうすればよいですか?
非常にJavaScriptを多用するプロジェクトにjsdocを使用しています。コード ドキュメントを取得するために、jsdoc に grunt を介して html ファイルを作成させます。
これまでのところ、次のように「memberof」キーワードを使用して、モジュールにプロパティとメソッドを正常に割り当てました。
例
これにより、すべてのモジュールを一覧表示する非常に優れた html ドキュメントが作成されます。そこでこれらのモジュールの 1 つをクリックすると、このモジュールのすべてのプロパティとメソッドが表示されます。ここまでは順調ですね。
しかし、本当の問題は、モジュールを特定の名前空間に割り当てたいということです。どうやってそれを行うのですか?jsdoc はこれをまったくサポートしていますか?
javascript - JavaScript でのグローバルな名前空間の汚染によって発生したパフォーマンス ヒットの測定値はありますか?
JavaScript を書いているときに最初に学んだことの 1 つは、変数を設定しwindow
てグローバル名前空間を汚染するのは悪い習慣だということでした。
なぜそれが悪い慣行と見なされるのか、さらには保存されたオブジェクトの量を測定する方法についても質問があるため、周りを見回すとたくさんの記事があります (こちら)。
しかし、格納されているオブジェクトの量を取得できたとしてもwindow
、クラタリングによる実際のパフォーマンスへの影響については何も読んだことがありませんwindow
。
質問:
名前空間の汚染がパフォーマンスを低下させる方法を示す例はありますか?
javascript - コンテキスト(ブラウザ、ノード)とは無関係に、JSでルート変数の読み取りを割り当てる方法は?
mkdir -p
たとえば、次のように、パス内の既存のオブジェクトを上書きせずに、オブジェクトをカスタム名前空間に割り当てる関数があります。
プロトタイプは次のようになります。
したがって、namespace
onを作成し、target
それに を割り当てobject
ます。明らかに、com.stackoverflow
すでに存在するtarget
場合は、上書き/初期化したくありません。
このメソッドは主にブラウザーのコンテキストで使用されるため、ターゲットとして渡す代わりに、オプションにしてルート要素をデフォルトにしwindow
たいと考えています。target
私が持っている実装のどこかに:
そして、名前空間に分離された要素がrecursiveElement
なくなるまで、名前空間の 2 番目のオブジェクト、3 番目などに割り当てられます。.
コードを次のように変更したい場合
どうあるべきroot
ですか?
root
デフォルトにしない理由はwindow
、このライブラリをもう少し一般的なものにして、ブラウザのコンテキストに結び付けないようにするためです。大したことではないことはわかっていますが、コードを変更して適応させるか、あきらめて3番目の引数を必須にするのではなく、知らない癖があるかどうかを知りたかったのです。
javascript - JavaScript 名前空間と IE8、null またはオブジェクト以外のエラー
私は最新のブラウザーと互換性があるはずのアプリケーションに取り組んでいますが、IE8、IE9 などの古いブラウザーをサポートする必要があります。
アプリの開発中に名前空間パターンに従いました。以下のように..
var myApp = myApp || {};
myApp.Globals = {}
同じことについて Addy Osmani のブログを参照しました。
IE10+ では問題なく動作しますが、IE8 および IE9 では変数は定義されていません。
たとえば、これらの名前空間をコンソール ログに記録すると、次のエラーで undefined が返されます。
myApp.Globals is null or not an object
IE8 と IE9 でそれらを修正する方法はありますか?
javascript - 別のウィンドウ名前空間でJsのメソッドをロードしてアクセスするLightningjs?
[ https://github.com/olark/lightningjs]を参照して、別のウィンドウの名前空間に js をロードします。
以下のような sample.js という名前のスクリプト ファイルをテストしたところ、別のウィンドウ名前空間にロードする必要があります。
html に lightningjs-embed.js と lightining-bootstrap.js を含めます。
コンソールでは、2 つのオブジェクトを 1 つを lightningjs として、もう 1 つを Piratelib として表示できます。私は、piratelib("testjs") を呼び出した後、コンソールで "サンプル" を取得することを期待しています。しかし、コンソールでサンプルを取得していません。コンソールで Piratelib("testjs") を試すと、表示されます
sample.js の実際の関数の代わりに
js の競合を避けるために、別の window.namespace の下に js をロードするためのいくつかのアイデアを提案してください。lightningjs を使用して正しい方法で関数を呼び出しているかどうかを明確にしてください。前もって感謝します。
typescript - Typescript クラス ストア
Typescriptで名前空間を正しく使用していない可能性がありますが、解決しようとしている問題は次のとおりです。
クラスを作成するとき、次のように require を使用して、他のすべてのファイルを参照する必要があります。
次のようなクラスを構築できるようにする場合は、毎回これらの 2 行を追加する必要があります。
私のプロジェクトは大規模なものにする予定で、すでにいくつかのクラスが必要なので、このファイルを一度だけ参照する必要があるように、すべてのクラスへの参照を持つ ClassStore.ts という名前のファイルを作成する必要がありました。
これを行うことは可能ですか?名前空間で何か不足していますか?
複数のエクスポートを含むファイルからインポート クラスとインターフェイスをエクスポートしようとすることに注意してください。1 つはインターフェース用で、もう 1 つはその実装用です。
私のプロジェクト (DependencyClass.ts) の典型的なファイル アーキテクチャは次のとおりです。
「ClassStore」で試したのは次のとおりです。
次のエラーが表示されます: Uncaught TypeError: 未定義のプロパティ 'DependencyClass' を読み取れません。
ご協力ありがとうございました。
javascript - JavaScript 名前空間オブジェクト: スクリプト インクルード順序
JavaScript の名前の間隔に問題があるようです。
JavaScriptobjects
を別々のファイルに分けました。
各ファイルは名前空間定義で始まります:
オブジェクトを含めると、ファイルに含まれるオブジェクトのいくつかのメソッドが呼び出されます-指定されたオブジェクトが存在しないという TypeError が返されます。
私が抱えている問題の例:
ファイル 1 Url.js (最初に html ドキュメントに含まれています):
ファイル 2 Helper.js (html ドキュメントの 2 番目に含まれています):
を使用して呼び出すと、MySystem.Url.init();
次のようになります。
含まれているファイルの順序を逆にすると、すべて正常に動作します。
これは明らかに非常に単純な例ですが、私のシステムはさらに多くのもので構成されてobjects
おり、それらはすべて独自の別のファイルにあります。
この問題の最善の回避策は何ですか?
javascript - javascript 名前空間を使用するには?
私はJavaScriptの名前空間を理解しようとしています...いくつかの関数を書き、以下のような名前空間でそれらを保護したいと思います..しかし、私はそれをうまく理解していないと思います..これはあまりにも単純な質問ですが、私には明らかです。なぜそれが機能しないのかがわかれば..
ここで私が試している経験:
myApp を呼び出します。
MyApp は正しく作成されていると思いますが、getTxt 関数の呼び出しと起動についてはわかりません。
それを呼び出す:
x.click関数を起動するという意味ではありません..?なぜ物体を回転させるのですか?
ここで何が間違っていますか?ありがとう!