スクリプトのロード段階で、多くのプロパティがObject.defineProperty、Object.definePropertiesまたはObject.createを使用して定義されている場合。また、ほとんどの記述子は書き込み不能(アクセサーでない場合)、構成不可能、列挙不可能または組み合わせのいずれかです。通常の割り当てやオブジェクトの初期化と比較して、パッシブなパフォーマンスの違いは何か、ターゲットのプロパティへのアクセスのパフォーマンスの違いは何ですか?Object.definePropertyの呼び出し後/実行時のパフォーマンスへの影響
書込み禁止や設定不可能なプロパティの定義には、書込みを防ぐためのガードの設定や再定義がパフォーマンスの低下の原因の1つになると聞いていますが、これは本当ですか?
定義例:
Object.defineProperty(window, 'foo', {
configurable: false,
enumerable: false,
writable: false,
value: 10
});
私はベンチマークでしか分かりません。 – Bergi
@Bergiしかし、JITが複雑な最適化などを行っているため、パフォーマンスがコンテキストに大きく左右されるため、JavaScriptで少し面倒なことを考えるとベンチマークはしません。 – monad
はい。 'defineProperty'はこれらの最適化に影響を与えます。パフォーマンスについて議論するときには無視できません。 – Bergi