問題タブ [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.

0 投票する
29 に答える
602810 参照

javascript - JavaScript で名前空間を宣言するにはどうすればよいですか?

オブジェクトと関数が他の同じ名前のオブジェクトと関数によって上書きされないように、JavaScript で名前空間を作成するにはどうすればよいですか? 私は以下を使用しました:

これを行うためのよりエレガントまたは簡潔な方法はありますか?

0 投票する
5 に答える
17326 参照

javascript - この「(function(){});」、角かっこ内の関数は、javascript で何を意味しますか?

重複の可能性:
これはどういう意味ですか? (関数 (x,y)){…}){a,b); in JavaScript
JavaScript オブジェクト/関数/クラス宣言を囲む括弧は何を意味しますか?

こんにちは、みんな

以下が何をするのかわかりません。

私の質問は次のとおりです。

  1. 関数を角かっこ .ie 内に置くことの意味は何(function(){});ですか?
  2. 関数の最後にある括弧のセットは何をしますか?

通常、これらは jquery コードやその他の JavaScript ライブラリで見られます。

0 投票する
1 に答える
433 参照

javascript - 名前空間内からパブリック メソッドにアクセスする

JavaScriptで独自の名前空間を作成中です...

私はこれらの種類の高度な JavaScript 手法に不慣れで、名前空間内からパブリック メソッドを呼び出す最善の方法を見つけようとしています。私のパブリックメソッド内でthisに設定されているようmyNamespaceです。

次のようなパブリックメソッドを呼び出す必要があります...

また...

違いはありますか?

0 投票する
4 に答える
4638 参照

javascript - Javascript名前空間-これは良いパターンですか?

目的...

  1. グローバルオブジェクトから変数、オブジェクトなどを削除します。
  2. 衝突の可能性を取り除きます。

まず、Yahoo名前空間コードを実装します(たとえば、名前空間のルートとしてROOTを使用していることに注意してください)...

今、私は私の最初の名前空間を宣言します...

ここでやりたいのは、UIに必要な変数(この場合はUTCの現在の時刻)を保持して、それらがグローバルオブジェクト上にないようにすることです。また、いくつかの特定の機能を提供したいと思います。これは、あらゆる種類のインスタンス化なしですべてのページで利用可能である必要があります...

ここで、名前空間構造内にオブジェクトを格納したいと思います。ただし、このオブジェクトは複数回作成する必要があります。ここでの目的は、これを構造内に保持しながら、必要な回数だけ作成できるようにすることです。これは次のとおりです。

そして、これはオブジェクトをインスタンス化するためのサンプルコードです...

これは良いパターンですか?

0 投票する
1 に答える
2658 参照

javascript - 名前空間で backbone.js を使用するにはどうすればよいですか?

過去 1 時間ほど、backbone.js で名前空間を動作させようと試みてきました。

私は読んだ: JavaScript で名前空間を宣言するにはどうすればよいですか?

そして、私はすべてのアプローチを試しました。問題は次のとおりです。

Backbone.Controller は、コンストラクター (「新しいキーワード」) を介して初期化する必要があります。そうしないと、Backbone.history が設定されないためです。これは、「Site.Controllers」などの名前空間に入れようとしているコードです。

MainController を名前空間に入れようとするたびに、backbone.js は MainController がコンストラクターではないと不平を言います。必要に応じて、私が試したすべてのアプローチをリストできますが、上記のリンクとまったく同じです。非常に遅いことが示唆されているため、クロージャーに入れようとはしませんでした。

0 投票する
3 に答える
1568 参照

javascript - Javascript:非グローバル(閉鎖)setTimeoutをクリアするには?

私は善良な市民になろうとしており、可能な限りグローバルな範囲から離れようとしています. グローバル スコープにない setTimeout 変数にアクセスする方法はありますか?

では、この例では、誰かが「タイマー」をキャンセルするにはどうすればよいでしょうか?

私はclearTimeout(myObject.timedAction.timer,1000);(成功せずに)試しましたが、他に何を試すべきかわかりません。

0 投票する
2 に答える
318 参照

javascript - グローバル名前空間(オブジェクトリテラル)にグローバルショートカット変数を割り当てるのは悪い習慣ですか?

次のことを行うのが良い習慣であるかどうかについて、私は少し困惑しています。

基本関数と変数を含めるために使用するグローバルオブジェクトリテラルまたは名前空間があります。

この中に、特定のページのすべての変数と関数を含むPageプロパティがあります。Pageプロパティ内のプロパティに要素IDへの参照も含まれています。これは、ASP.NETサイトがあり、.NETで生成されたクライアントIDを保存して、jQueryで参照できるようにする必要があるためです。

私の問題は、次のようなページ関数内のこれらのリテラルに「ショートカット」変数を割り当てていることに気付くということです。

私の質問は次のとおりです。マスターページに「グローバル」変数を作成することをお勧めします。たとえば、var _p = Base.Page;これは恐ろしくて悪い習慣であり、上記のように続行する必要がありますか?

(私の名前空間には、上記のような短い名前はありません。これらは説明のためだけのものです。

ASP.NETまたはjQueryは、この質問に直接関係しているとは思わないため、タグを付けていません。)

0 投票する
2 に答える
747 参照

jquery - 兄弟をループするjQueryプラグイン

私はjQueryプラグインを作成するのが初めてなので、これを行う方法が少しわかりません。プラグインは、テキストおよびパスワード入力内のヒントとしてラベルを表示するためのものです。それは一種の単純なものです-要素のフォーカスでは、ラベルは非表示になっています。また、ドキュメントの読み込み時に、ブラウザがフィールドフォームを自動入力したかどうかを確認します。自動入力した場合は、ラベルが非表示になります。私が抱えている問題は、他のフィールドのオートコンプリートです。これを解決するために、要素のonblurイベントとkeyupイベントに関数をバインドして、他のフォーム要素をループし、それらがオートコンプリートされているかどうかを調べようとしています。

これが注釈付きのコードです。

これを行うことでトリガーされます。

.txtboxは、これを使用するフォームテキストおよびパスワードフィールドに追加するクラスです。

スコープの問題だと思います。最後の$(this).eachが問題です。.txtboxクラスですべての要素をループするのではなく、イベントが発生している入力の値をループします。クラス名をプラグインに追加したくないのは、コードが追加されて柔軟性が低下するためです。

これに関するアドバイスをいただければ幸いです。

乾杯

グレッグ

0 投票する
3 に答える
1114 参照

javascript - JavaScript 名前空間とイベント リスナーの「this」に関する問題

まず第一に、次のように JavaScript プログラムで偽の名前空間を使用しようとしています。

私は他の関数を呼び出すことに夢中ではありませんthisが、最近までは機能していました。ただし、いくつかの要素にイベント リスナーを追加したところ、それらthisはターゲット オブジェクトとして解釈されます。

thisリスナー内の関数を呼び出す代わりに、完全な名前空間を使用できることはわかっていますIsh.Com.View.publicFunction2()が ( )、リスナーは、ある関数を呼び出し、その関数が別の関数を呼び出したり、別の関数を呼び出したりすることがよくあります。ほとんどすべての関数呼び出しで名前空間全体を使用する必要があります。

名前空間をイベント リスナーとうまく連携させるにはどうすればよいですか? 名前空間を使用するのは面倒なので、名前空間を実装するより良い方法にも興味がありますthis.publicFunction2()

私はベスト プラクティスに非常に興味があり、JavaScript で適切に設計されたアプリケーションを作成する方法を学びます。ただし、フレームワークは、JavaScript をより完全に理解するまで問題外です。

0 投票する
4 に答える
725 参照

javascript - JavaScriptの名前空間に推奨される手法

ある種の名前空間手法を使い始めないと、コードが混乱してしまいます。私は大規模なjavascriptプロジェクトのプログラミングに比較的慣れていませんが、C ++ / java/pythonなどでのシステムプログラミングの経験が豊富です。

基本的に、私はjavascript名前空間を作成するための好ましい方法と、各方法の長所/短所を特定しようとしています。

たとえば、次の3つの方法のいずれかを使用できます。

また

また

それを明らかにする方法は他にもありますが、私が最初に見て考えたのはこれらの方法でした。誰かが「最高の」テクニックがあると言うことができますか、または少なくとも私が私に最適なものを評価できるいくつかの賛否両論に私を向けることができますか?