LoginSignup
0
0

More than 1 year has passed since last update.

92.プロパティとディスクリプター

Posted at

プロパティとディスクリプター

プロパティとディスクリプターについて

プロパティにはオブジェクトが保持している変数を介した値というイメージが強いと思います.
humanオブジェクトのプロパティであれば
human.name = "tanaka" その人の名前は田中
dog.name = "pochi" その犬の名前はポチ

オブジェクト=値というイメージを持っていましたが
オブジェクトの中には
ディスクリプターというものがあり
*value 値そのもの
*configurable 設定変更可能性 trueかfalse
*enumerable  列挙可能性 trueかfalse
*writable   値の変更可能性 trueかfalse
上記を設定することができます

実装方法

確認方法

1.オブジェクトを作成
2.Object.getOwnPropertyDescriptor(オブジェクト名,'キー名')
3.console.logで確認

    const obj = {prop: 0};
    const descriptor = Object.getOwnPropertyDescriptor(obj,'prop')
    console.log(descriptor)

ディスクリプターメソッドによる値の変更

→注意!
*configurable false
*enumerable  false
*writable   false
以上が全部faiseになる

    const obj = {prop: 0};
    const definedescriptor = Object.defineProperty(obj,'prop',{value:10})
    console.log(definedescriptor)

ディスクリプター変更

    const obj = {prop: 0};
    const descriptor = Object.getOwnPropertyDescriptor(obj,'prop')
    descriptor.writable = false
    console.log(descriptor)

スクリーンショット 2022-09-06 12.38.36.png
writable = falseになりました。。

試しに値を変更してみる、、

    descriptor.prop = 100;
    descriptor.writable = false
    console.log(descriptor) //0から100へ

変更されずにすみました

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0