Movatterモバイル変換


[0]ホーム

URL:


MDN Web Docs

Reflect.set()

BaselineWidely available

TheReflect.set() static method is like theproperty accessor andassignment syntax, but as a function.

Try it

const object1 = {};Reflect.set(object1, "property1", 42);console.log(object1.property1);// Expected output: 42const array1 = ["duck", "duck", "duck"];Reflect.set(array1, 2, "goose");console.log(array1[2]);// Expected output: "goose"

Syntax

js
Reflect.set(target, propertyKey, value)Reflect.set(target, propertyKey, value, receiver)

Parameters

target

The target object on which to set the property.

propertyKey

The name of the property to set.

value

The value to set.

receiverOptional

The value ofthis provided for the call to the setter forpropertyKey ontarget. If provided andtarget does not have a setter forpropertyKey, the property will be set onreceiver instead.

Return value

ABoolean indicating whether or not setting the property was successful.

Exceptions

TypeError

Thrown iftarget is not an object.

Description

Reflect.set() provides the reflective semantic of aproperty access. That is,Reflect.set(target, propertyKey, value, receiver) is semantically equivalent to:

js
target[propertyKey] = value;

Note that in a normal property access,target andreceiver would observably be the same object.

Reflect.set() invokes the[[Set]]object internal method oftarget.

Examples

Using Reflect.set()

js
// Objectconst obj = {};Reflect.set(obj, "prop", "value"); // trueobj.prop; // "value"// Arrayconst arr = ["duck", "duck", "duck"];Reflect.set(arr, 2, "goose"); // truearr[2]; // "goose"// It can truncate an array.Reflect.set(arr, "length", 1); // truearr; // ["duck"]// With just one argument, propertyKey and value are "undefined".Reflect.set(obj); // trueReflect.getOwnPropertyDescriptor(obj, "undefined");// { value: undefined, writable: true, enumerable: true, configurable: true }

Different target and receiver

When thetarget andreceiver are different,Reflect.set will use the property descriptor oftarget (to find the setter or determine if the property is writable), but set the property onreceiver.

js
const target = {};const receiver = {};Reflect.set(target, "a", 2, receiver); // true// target is {}; receiver is { a: 2 }const target = { a: 1 };const receiver = {};Reflect.set(target, "a", 2, receiver); // true// target is { a: 1 }; receiver is { a: 2 }const target = {  set a(v) {    this.b = v;  },};const receiver = {};Reflect.set(target, "a", 2, receiver); // true// target is { a: [Setter] }; receiver is { b: 2 }

Specifications

Specification
ECMAScript® 2026 Language Specification
# sec-reflect.set

Browser compatibility

See also

Help improve MDN

Learn how to contribute.

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp