問題タブ [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 - プロトタイプからプロパティを再定義するにはどうすればよいですか?
p
オブジェクトのプロトタイプからプロパティを削除するにはどうすればよいですか?
これによりTypeError: Cannot redefine property: p が生成されます。プロパティを削除して再度追加する方法はありますか? またはconfigurable
、プロパティが作成された後に属性を設定することは可能ですか?
javascript - Object.defineProperty で定義されたプロパティの Javascript 継承
私は次の親クラスを持っています...
および対応する子クラス:
Child.prototype = Object.create(Parent.prototype);のようなものを追加して、継承を適用しようとしました 。 、しかし、これは明らかに機能しません。
プロパティIDと名前を使用できるように、親クラスから継承するにはどうすればよいですか。
javascript - 配列を返す Object.defineProperty で .push() を再定義する
Object.defineProperty
次のような配列を返すコンストラクター関数のプロトタイプを呼び出して作成されたオブジェクトにプロパティがあるとします。
.push()
派生bar
プロパティの呼び出しをキャプチャしてオーバーライドするにはどうすればよいですか?
javascript - jQuery の使用時に object.prototype を拡張するための代替方法
しばらく前に拡張しようとしましたObject.prototype
...後でコンソールにjQueryファイルからのエラーが表示されたときは驚きました。私は何が間違っているのかを理解しようとしましたが、もちろん、拡張Object.prototype
は「悪」であるという情報、「JS は動的言語であり、コードがすぐに機能しないため、それを行うべきではありません」という情報と、jQuery がhasOwnProperty
メソッドを追加するという情報を見つけました。彼らのfor in
ループに。
私は jQuery を離れたくなかったので、拡張についての考えを捨てましたObject.prototype
。
今まで。私のプロジェクトは大きくなり、コードのいくつかの部分を何度も繰り返さなければならないので、本当にイライラしています。以下は、私のプロジェクトで使用している構造の一部です。
charts.js:
ダッシュボード.js
前述したように、プロジェクトは現在非常に大きくなっています。40 以上の js ファイルがあり、そのうちのいくつかには数千行のコードが含まれています。&&_init
を繰り返さなければならない多くの機能と同様に、セクションを毎回繰り返さなければならないのは本当に面倒です。$(document).ready
$(window).load
私は自分の問題の別の解決策を見つけようとしました。init
プロパティを使用してクラスを作成しようとしましたが(詳細はこちらで確認できます)、このソリューションにより、すべてのファイルに別の「不要な」コードを追加する必要があり、他のファイルオブジェクトプロパティへのアクセスも複雑になります(どこでも適切なオブジェクトを返すなど) )。コメントでアドバイスされているように、JS のゲッターとセッターについて読み始めました。
結局、私はそのようなものを作成しました:
と私のオブジェクト:
このソリューションは jQuery で動作するようです。しかし、安全に使用できますか?コードが引き起こす可能性のある問題は見られず、コードが引き起こす可能性のあるその他の問題も見当たりません。このソリューションを使用すべきではない理由を誰かが教えてくれたら、本当にうれしいです。
また、それがどのように機能するかを詳細に理解しようとしています。理論的には、値を割り当てずにObject.prototype
byのプロパティを定義しました。defineProperty
どういうわけか、jQueryfore in
ループでエラーが発生しないのはなぜですか? _init
それは、私がプロパティのゲッターのみを定義しているため、プロパティがある時点またはまったく定義されていないことを意味しますか?
どんな助けでも大歓迎です:)