Object.defineProperties()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Object.defineProperties() メソッドは、オブジェクトに直接新しいプロパティを定義し、あるいは既存のプロパティを変更して、そのオブジェクトを返します。

試してみましょう

const object1 = {};

Object.defineProperties(object1, {
  property1: {
    value: 42,
    writable: true,
  },
  property2: {},
});

console.log(object1.property1);
// Expected output: 42

構文

js
Object.defineProperties(obj, props)

引数

obj

プロパティを定義または変更するオブジェクト。

props

キーが定義または変更されるプロパティの名前を表し、値がそれらのプロパティを記述するオブジェクトであるオブジェクトです。 props の各値は、データ記述子かアクセサー記述子のいずれかでなければなりませんが、両方を指定することはできません (詳細は Object.defineProperty() を参照してください)。

データ記述子およびアクセサー記述子は、オプションで以下のキーを含むことができます。

configurable

プロパティの記述子が変更でき、プロパティが対応するオブジェクトから削除できるときのみ true既定値は false