[解決済み] javascriptのネストされたオブジェクト、ベストプラクティス
2022-03-06 09:48:25
質問
javascriptでネストされたオブジェクトを作成する正しい方法を知りたいです。私は、"defaultsettings"という名前のベースオブジェクトが欲しいのです。このオブジェクトは、ajaxsettingsとuisettingsという2つのプロパティ(オブジェクトタイプ)を持っている必要があります。次のように書けばいいことは分かっています。
var defaultsettings = new Object();
var ajaxsettings = new Object();
defaultsettings.ajaxsettings = ajaxsettings.. etc.
しかし、私が知りたいのは、このように入力する方法です(それがより正しい方法だと思います)。
var defaultsettings = {
var ajaxsettings = { ... }
};
お分かりいただけたでしょうか?ありがとうございます。
どのように解決するのですか?
あらかじめ設定がわかっている場合は、1つの文で定義することができます。
var defaultsettings = {
ajaxsettings : { "ak1" : "v1", "ak2" : "v2", etc. },
uisettings : { "ui1" : "v1", "ui22" : "v2", etc }
};
事前に値がわからない場合は、トップレベルのオブジェクトを定義してから、プロパティを追加すればよいでしょう。
var defaultsettings = { };
defaultsettings["ajaxsettings"] = {};
defaultsettings["ajaxsettings"]["somekey"] = "some value";
あるいはその中間で、トップレベルにネストした空のオブジェクトをプロパティとして定義し、そのネストしたオブジェクトにプロパティを追加します。
var defaultsettings = {
ajaxsettings : { },
uisettings : { }
};
defaultsettings["ajaxsettings"]["somekey"] = "some value";
defaultsettings["uisettings"]["somekey"] = "some value";
上記のテクニックを使えばいくらでも深くネストすることができますし、角括弧の中に文字列リテラルがあれば、どこでも変数を使うことができます。
var keyname = "ajaxsettings";
var defaultsettings = {};
defaultsettings[keyname] = {};
defaultsettings[keyname]["some key"] = "some value";
ができることに注意してください。 ない は、{ } リテラルの構文でキー名に変数を使用します。
関連
-
[解決済み】ある要素を別の要素に移動させるには?
-
[解決済み】React、Uncaught ReferenceError。ReactDOMは定義されていません
-
[解決済み】JS ファイルが net::ERR_ABORTED 404 (Not Found) を取得する)
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み] JavaScriptでオブジェクトをディープクローンする最も効率的な方法は何ですか?
-
[解決済み] JavaScriptのオブジェクトにキーが存在するかどうかをチェックする?
-
[解決済み】ネストされたJavaScriptオブジェクトのキーが存在するかどうかをテストする
-
[解決済み】オブジェクトからプロパティを削除する(JavaScript)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Javascript:getElementById対getElementsById(両方が別のページで動作する)。
-
[解決済み】Uncaught ReferenceError: angular is not defined - AngularJSが動作しない。
-
[解決済み】webpack: モジュールが見つかりません。Error: 解決できない(相対パスで)
-
[解決済み】JavaScriptのgetElementByNameが機能しない
-
[解決済み】Javascriptのコールバック関数がFirefoxで「Callback is not a function」というエラーを投げる
-
[解決済み】Uncaught SyntaxError: JSON の位置 0 に予期しないトークン u があります。
-
[解決済み】Vueのテンプレートまたはレンダー関数が定義されていない 私はどちらも使っていないのですが?
-
[解決済み】PhantomJS 2.1.1を使用してReactJSアプリケーションをレンダリングできない理由とは?
-
[解決済み] [Solved] Uncaught Invariant Violation: 前のレンダリング中よりも多くのフックをレンダリングする
-
[解決済み】中央値の計算 - javascript