es5 で Object.seal() を使用してオブジェクトをシールした後、オブジェクト プロトタイプのプロパティを変更できますか?
漂亮男人
漂亮男人 2017-06-10 09:49:20
0
2
913

mdn の説明はこれです

翻訳では、プロトタイプの継承された属性は影響を受けないが、__proto__ 属性の値は変更できないと書かれていました。その後、自分でテストしたところ、オブジェクトをシールした後にプロトタイプを削除および変更できることがわかりました。この文が正しいかどうかわかりませんでした。 。 。
コードは以下のように表示されます

リーリー


プロトタイプのprototypeTarget属性が削除されました

漂亮男人
漂亮男人

全員に返信(2)
刘奇

通常、オブジェクトは拡張可能です (新しいプロパティを追加できます)。オブジェクトをシールすると、新しいプロパティを追加できなくなり、既存のプロパティはすべて構成できなくなります。プロパティを構成不能にすると、そのプロパティは削除できなくなり、データ プロパティをアクセサー プロパティとして再定義したり、その逆を行うことができなくなります。ただし、プロパティの値は変更できます。シールされたオブジェクトのプロパティを削除したり、シールされたオブジェクトのプロパティをデータ プロパティからアクセサー プロパティに変換しようとすると、サイレントに失敗するか、TypeError 例外がスローされます (厳密モード)。

プロトタイプチェーンから継承されたプロパティには影響しません。ただし、proto 属性の値は変更できません。

情報の出典: https://developer.mozilla.org...

いいねを押す +0
巴扎黑

_proto_ はプロトタイプ プロパティではなく、内部プライベート プロパティです

詳細については、https://developer.mozilla.org...をご覧ください

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート