問題タブ [defineproperty]
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 - Object.defineProperty() vs Object.prototype.property vs Object.property いつ何を使う?
Object.defineProperty()、Object.prototype.property、および Object.property を使用する場合の適切な使用例を教えてください。
javascript - Object.defineProperties() の自己参照
複数のプロパティをオブジェクトに追加する場合、Object.defineProperties()
通常、それらを で追加すると、1 つずつまたはグループで追加するよりもクリーンで読みやすいコードが生成されます。
ただし、プロパティが別のプロパティを参照している場合は、Object.defineProperties()
それを処理できません。ダミーの例を考えてみましょう:
2番目のソリューションが常に機能することは明らかです。ただし、最初のものも他のものの省略形のように見え、とにかくプロパティの順次処理を示唆しているため、最初のものも同様に機能すると思われます。
これに関する明示的なドキュメントは見つかりませんでした。
質問は次のとおりです。
- これは意図的な制限ですか、それともバックグラウンドでの技術的な複雑さですか?
- それはどこかに文書化されていますか?
- 実装固有または標準の動作ですか?
編集:明確に答えて、私のコメントも見てください。これは、Object.defineProperties() とは直接関係のない、単純なオブジェクト リテラルの問題です (問題ではなく、むしろ :) です。
javascript - js es5 Object.definePropertyで=演算子をオーバーロードする方法
=
を使用して JS オブジェクトの演算子をオーバーロードする方法を教えてObject.defineProperty
ください。
これは、単純なプロパティを定義するための標準的な es5 構文です。
現在は、オーバーロードされた演算子obj.var
を持つプロパティです。
しかし、実際に何をすべきかは、それ自体の演算子をオーバーロードすることです。=
=
obj
=
オブジェクト自体の演算子をオーバーロードする方法は?
(es5で)可能ですか?
javascript - elem.dataset で Object.defineProperty を使用しますが、プロパティは引き続き変更可能です
Object.defineProperty を使用して、キャンバス要素のデータセットに変更不可能なプロパティを設定しようとしています。通常のオブジェクトでは、これは正常に機能します。しかし、データセット オブジェクトでそれを実行しようとすると、プロパティはまだ変更可能です。
writable: false を使用しても解決しません。これを解決する方法はありますか、それはバグですか、このように Object.defineProperty を使用することは想定されていませんか?
javascript - プロパティタイプに独自の「セット」がある場合、オブジェクトプロパティで「セット」を使用する方法は?
「_position」が Sprite の Point オブジェクト メンバーであり、Number メンバー x と y、および独自の get/set 定義を使用する場合、これが機能するように、より高いレベルの「set」を適用するにはどうすればよいですか (編集: Point の 'set' 関数ではなく、Sprite の 'set' 関数):
現在何が起こっているかというと、「this.position」が「position.get」プロパティに渡され、次に「this.position.set」が Point set 関数に渡されます。独自の get/set を使用してオブジェクトを「設定」しようとすると、最低レベルに落ちるようです。
この動作を変更する方法が必要なように感じますが、私のグーグル検索とスタックオーバーフロー検索では答えが見つかりません。ここでやりたいことを表す適切な用語がある可能性がありますが、それがなければ、質問というフレーズを正しく理解するのに苦労しています。
例: これは近いですが、私の状況ではうまくいきません
編集: Point のソース ファイル、または this.position.set(x,y); の関数は制御しません。保持されています。ただし、実際にポイント セット関数を使用したい他のオブジェクトを壊さないことを証明できれば、呼び出し構文の変更の許可を得ることができるかもしれません。
javascript - 「scrollTop」プロパティをオーバーライドし、getter で値に到達する
カスタム スクロールバー スクリプトの場合、デフォルトの scrolltop プロパティをオーバーライドしたいと考えています。今、私はそれを変更するために最初に値に到達する必要があるという問題があります。私が使う
仕事をすること。誰かアイデアや代替案はありますか?
よろしくお願いします、
サイモン