問題タブ [object-literal]
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 - javascriptで、プロパティ名の文字列を評価する式を使用してオブジェクトリテラルを作成することは可能ですか?
つまり、これを行うことは可能ですか?
javascript - オブジェクトのメソッドを別のオブジェクト リテラルのプロパティとして保存できないのはなぜですか
以下のコードは、特定の状況で実行するいくつかのメソッドを示すために使用されているため、より単純な構文を使用して呼び出すことができます。
しかし、コードは空のオブジェクトを返し続けます。メソッドが定義されていることをconsole.logで確認しました。また、名前を変更し、空のオブジェクトを呼び出してから、callbacks.alter などのプロパティを追加して、問題にならない他の変更を試みました。
なぜこれがうまくいかないのですか?
エラーは puzzle.js の 238 行にあります
javascript - JavaScriptオブジェクトリテラルのキーに変数を使用するにはどうすればよいですか?
なぜ次のように機能するのですか?
これは機能しませんが:
さらに明確にするために:現時点では、CSSプロパティを変数としてanimate関数に渡すことはできません。
javascript - 一部のオブジェクト リテラル プロパティが引用されているものと引用されていないものがあるのはなぜですか?
私はいつもこれを目にします: 一部のキーが引用符で囲まれ、他のキーが囲まれていないように宣言されたオブジェクト リテラル。jQuery 1.4.2 の例:
for
最初の 2 つのプロパティ キー (と) を引用符で囲み、残りを引用符なしのままにすることの意味は何ですか? class
違いはありますか?
私はECMAScript 5 仕様を調べてきました。私が見つけることができたのは[セクション15.12.3の注6、強調私のもの]:
注 6 オブジェクトは左中かっこの後に 0 個以上のプロパティが続き、カンマで区切られ、右中かっこで閉じられます。プロパティは、キーまたはプロパティ名、コロン、文字列化されたプロパティ値を表す引用符で囲まれた文字列です。配列は左大括弧の後に 0 個以上の値が続き、カンマで区切られ、右大括弧で閉じられます。
ただし、これはJSONの文字列化のみを指します。
javascript - 文字列文字列とeval、複数の関数、およびすべての種類を使用して、未知の量の変数を渡す
つまり、オブジェクトリテラルを使用して、未知の量の変数を任意の順序で関数に渡すことができるようにしたいのです。これは理論的には大したことではありませんが、私のコードでは、このオブジェクトリテラルは。と呼ばれる2番目の関数に渡されon_change
ます。
on_change
要素のinnerHTMLを文字列と比較することで機能します。同じ場合は、関数を再度呼び出すためのタイムアウトを設定します。要素のinnerHTMLが文字列と異なる場合、3番目のパラメーターが実行されます。これは、関数または文字列のいずれかになります。どちらの方法でも実行されます。私はこの機能を十分にテストし、しばらくの間使用しました。
ただし、オブジェクトリテラルを関数呼び出しに流すことができないようです...
私はこれをフォーム送信の一部と呼んでいます。この行の後で、関数を呼び出してajaxを介してコンテンツをロードします。これは正常に機能し、on_change
関数からコードをトリガーします。
load_xml
私は関数をテストしました、それは呼び出しalert(param.xpos)
て正しい応答を得ることができます。未定義のチェックを追加して、電話をかける残りの時間にload_xml
アラートが殺到しないようにすることもできます。
このload_xml
関数は最初に関数を設定しon_change
、次に関数を呼び出してコンテンツを非表示のdivにロードします。AJAXリクエストがそのDIVを更新すると、on_change
関数は関数を呼び出す必要がありparse_xml
ます。これにより、xmlファイルから情報が取得されます。ただし...このオブジェクトリテラルパラメータの考え方は、このparse_xml
関数に特定のものを無視するように指示できるということです。
これはの一部でありload_xml
、そこにparamビットがあっても完全に正常に機能します。ただし、parse_xml
そのパラメータを使用できないようです。
私はそれを、オブジェクトリテラルが通過したことを意味すると思うことがparse_xml
できalert(param)
、与えることができるようになりましたが、呼び出しようとすると未定義になります。[object object]
alert(param.xpos)
私はこれが問題の豚であることを知っています、そして私は関数に無数のブールパラメータをとらせるだけでそれを回避することができました、しかしそれはあまり良い解決策ではありません。
javascript - このJavascriptオブジェクトリテラルキーの制限は、厳密に解析によるものですか?
以下のコードを参照してください。コメント アウトされた行のいずれかを「コメント イン」すると、(IE で)「':' expected」というエラーが発生します。したがって、文字列リテラルのオブジェクトキーとしてオブジェクト値への参照を提供できないという私の結論は正しいです。これは厳密にはインタプリタ/解析の問題ですか? Crockfordの「良い部分」とは対照的に、これはJavascriptのひどい(または少なくとも「悪い」)「部分」の候補ですか?
javascript - プロパティ名の変数を使用してオブジェクトを作成します
オブジェクト作成のオブジェクトリテラルプロパティで変数名を使用することは可能ですか?
例
javascript - Javascriptオブジェクトリテラル:なぜこれができないのですか?
次の(簡略化された)オブジェクトリテラルがあります。アイコンメソッドは、クロージャを使用してアイコン変数を非表示にします。これは、後で検索するための連想配列として使用したいと思います。
次のように、アイコンオブジェクトにアイテムを追加します。
以下は機能しません。
しかし、これはします:
クロージャーの外では、連想配列スタイルは正常に機能するので、おそらくjQueryとの競合がありますか?ファイアバグaで発生するエラーは、未定義であり、ライブラリから発生しているように見えます。連想配列のスタイルを維持したい。
何か案は?
アップデート
この競合はグーグルマップから来ているようです。奇妙なことに、これを回避する方法がわかりません。
ダンバスアップデート
ベースGIcon()オブジェクトを返したオブジェクトリテラルの部分は、オブジェクトをまったく返していませんでした。そのため、オブジェクトには適切なプロパティがありませんでした。
また、MapListings.baseIconはMapListings.baseIcon()と同じではありません。ドー
python - オブジェクトリテラルはPythonicですか?
JavaScriptにはオブジェクトリテラルがあります。
.NETには匿名タイプがあります。
名前付き引数を(ab)使用することで、Pythonで同様の何かをエミュレートできます。
使用法:
しかし、この種のコードはPythonicと見なされますか?