問題タブ [javascript-objects]
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オブジェクト参照にアクセスする
わかりました、オブジェクトの参照を関数に転送できるかどうか疑問に思っています。私が何を言おうとしているのか理解できない場合は、これが役立つかもしれません:
したがって、更新機能については、次のようなことができるようにしたいと考えています。
そして、オブジェクトから変数 (edit、dyna、old) を取得しEditor
ます。ありがとう。
javascript - JavaScriptでオブジェクトのタイプを変更する
JSONで定義された既存のオブジェクトの配列があります。オブジェクトは明らかにオブジェクトタイプです。それらをカスタムオブジェクトタイプに関連付けて、特定の機能を提供するにはどうすればよいですか?
javascript - オブジェクト プロパティは常に未定義
JS オブジェクトを使用したのはこれが初めてで、このプロパティが常に未定義である理由について混乱しています。
私が得るエラーは次のとおりです。
キャッチされていない TypeError: 未定義のプロパティ '0' を読み取ることができません
返された JSON は正常に機能しており、フェッチはコンソールで呼び出されたものとしてマークされています (ログに記録されたデータも問題ありません)。Rotator.images が常に未定義なのはなぜですか?
編集: console.log の結果:
- ログイン
data.images
する$.getJSON
と正しいデータが得られます。 - ログイン
links
するFetch
と正しいデータが得られます。 - ログイン
this.images
するFetch
と正しいデータが得られます。 - ログイン
this.images
するCurrent
と null になります。
javascript - 数値の場合、オブジェクトキーの順序を変更するChromeは、それが正常/予想されることです
e コマース サイトで靴のサイズを評価して画面に出力する特定のコードが、Chrome で順序を乱していることに気付きました。
指定できる JSON は次のとおりです。
...サイズを半分に増やします。
オブジェクトに変換してキーを反復すると、自然順序が尊重され、次のようになります。
7、7.5、8、8.5など
ただし、Chrome のみでは、丸数字のように「見える」キーは常に最初にオブジェクトから出てくるため、for... in ループの出力は次のようになります。
7、8、9、7.5、8.5、9.5 ...
テストケースは次のとおりです: https://jsfiddle.net/wcapc46L/1/
整数にのみ影響します。Webkit / Blink には、数値のオブジェクト プロパティを優先する最適化があるようです。おそらく、分岐予測などに関係しています。
オブジェクト キーの前に任意の文字を付けても、順序は影響を受けず、意図したとおりに機能します - FIFO
オブジェクトのプロパティの順序に保証がないことを読んだことを覚えていると思いますが、同時に、これは極端に面倒であり、クロムユーザーだけで修正するにはかなりの労力が必要になります.
何か案は?これはおそらく修正されるバグですか?
さらに編集して、v8バグトラッカーの問題としてこれを発見しました:
https://code.google.com/p/v8/issues/detail?id=164
Blink はこれを修正したくないようで、修正できる唯一のブラウザであり続けるでしょう。
ハッシュテーブルの最適化 webkit/blink が持っていたものを更新すると、現在 gecko (FF 27.0.1) に組み込まれています - https://jsfiddle.net/9Htmq/結果は
7,8,9,7.5,8.5,9.5
._
キーが正しい/予想される順序を返す前に適用します。update 2017人々はまだこれを支持して編集しているので、
Map
/などには影響しないようです(更新されたメインの例で示されているように)WeakMap
Set
javascript - jqGrid動的選択フィールド
colModelのステータスフィールドの値を動的に変更する方法はありますか?次のようなフィールドを持つcolモデルがあるとします。
したがって、この値を使用して州の選択フィールドを取得します。しかし、どの選択フィールドが可能であるかを動的に決定する必要があります。現在の行の状態がstate0の場合、state0とstate1のみが表示されます。状態がstate1の場合、表示はstate0、state1、state2のようになり、状態4まではstae3とstate4のみが表示されます。
フォーマッターでこれを解決することはできますか、それともそのようなことを行う他の方法はありますか?
さらに難しくするために、一般的に表示される状態は、私のアプリケーションでログインしているユーザーに依存しているとしましょう。ある意味で、ユーザーはstate0、state2、state4しか見ることができません。これはさらに複雑になる可能性があり、state3とstate4の間の遷移が現在のユーザーに許可されないためです。
それにもかかわらず、状態自体も動的にあります。アプリケーションでオブジェクトのJavaScriptを動的に生成すると便利ですか?これは一般的な状態クラスを表し、このオブジェクトを使用してフォーマッターで必要な出力を生成しますか?したがって、このオブジェクト内のロジック、出力の生成方法、さらにユーザーが表示できる状態のみを取得する方法をカプセル化できます。
1つの石で2羽の鳥を殺すように私を連れて行くべきです。
読み直した後、私が何をしたいのかが明確になっていることを願っています。そうでない場合は、教えてください。詳細を説明します。
具体的な問題の解決策、thx to oleg:
関数が一度だけ呼び出されたため、問題が発生しました。したがって、NavgridでrecreateFormオプションを設定する必要があります。
その後、[編集]をクリックするたびに関数が起動します。これが誰かに何らかの形で役立つことを願っています。
jquery - intまたはstringを返す必要がある場合にobject Objectを返すjavascript var
私は 2 つの ajax 関数を持っており、最初の関数を使用して 2 番目の関数にデータを渡しますが、POST を見ると、送信されている変数について、オブジェクト Object が変数の値として返されるのではなく、変数の値として返されることがわかります。文字列または整数のいずれかを期待していました。JavaScriptは次のようになります。
javascript - JSで別のメソッドからメソッドを呼び出す
私はJSの次のスニペットを持っています
ShipProductからNotifyを呼び出すにはどうすればよいですか?
javascript - これに変数を設定するよりも良い方法はありますか?
私のjavascriptオブジェクトで、私は自分がこれを書いていることに気づきました:
メンバー変数を外部関数に渡す唯一の方法のようです...
それは機能しません。オブジェクトをメンバー変数にコピーして、新しいオブジェクトを渡す必要があります(そしてすべてthis
をに置き換えますthis_object
)
これは醜い感じです。「より良い」または「よりクリーンな」方法はありますか、それともこれが私の唯一の選択肢ですか?
javascript - {a:1} と入力すると 1 が返され、{a:1, b:2} と入力すると Javascript コンソールでエラーが発生するのはどのような動作ですか?
以下は、Firebug またはjsconsole.comまたは他の Javascript インタラクティブ コンソールに表示されます。
なぜ1
返され{a : 1}
、なぜ{a : 1, b : 2.2}
エラーが発生するのですか? Ruby では、定義したのと同じ方法で返されます。
javascript - JavaScriptはどのようにOOPしますか?
JavaScriptでオブジェクトを作成する方法を学んでいます。私がこれをするとき...
Personクラスのインスタンスを作成していることは知っていますが、そのクラスを再利用して別のインスタンスを作成する方法(またはその場合)がわかりません。JavaScriptにはどのようなOOP機能がありますか?JavaやRubyなどの他の言語と同じOO機能がありますか?JavaScriptがOOPをどのように行うかを誰かに説明してもらえますか?