今日、オブジェクトに新しいプロパティを追加するReflect.definePorperty()メソッドに遭遇しました。.in,Object.keys()では新しいプロパティを参照できません。コンソールには、グレーアウトされたプロパティが表示されます。理由: 新しい属性を追加する場合、enumerable はデフォルトでは false です。 この問題を解決するには、属性が列挙可能かどうかを示す 3 番目のパラメータで enumerable を true に設定します:
Reflect.defineProperty(target,'name',
{
value: value,
enumerable: true,
}
);
tips:
これは、新しいReflectを追加するときのデフォルト値である。.defineProperty()新しい属性を追加する場合,
configurableenumerableとwritableプロパティのデフォルト値はすべてfalseである。,
もし、最初に属性に値が割り当てられている場合は、次のようになる。
configurable3つ目のパラメータ、enumerableとwritableはすでにtrueになっている。