JavaScript - Reflect.set() 方法
Reflect.set() 方法允许您设置对象属性的值。与 Object.defineProperty() 或赋值运算符不同,Reflect.set() 还可以与代理配合使用,并遵循其处理程序。当您需要确保触发处理程序的 set 陷阱或需要动态设置属性值时,此方法非常有用。
在需要验证属性是否正确设置的情况下,Reflect.set() 方法提供了一种更具适应性且更清晰的方法来设置对象属性。
语法
以下是 JavaScript Reflect.set() 方法的语法 -
Reflect.set(obj, Key, value, receiver)
参数
此方法接受三个参数。下文将分别介绍 -
obj - 要设置属性的目标对象。
Key - 表示要保存的属性的名称。
value - 要设置的值。
receiver - 可选参数,其值用于调用目标对象。
返回值
此方法返回一个布尔值,指示属性是否设置成功。
示例
示例 1
让我们看下面的示例,我们将使用 Reflect.set() 方法将属性设置为对象。
<html>
<style>
body {
font-family: verdana;
color: #DE3163;
}
</style>
<body>
<script>
const x = {};
Reflect.set(x, 'val', 12345);
document.write(x.val);
</script>
</body>
</html>
如果我们执行上述程序,它将在网页上显示一段文本。
示例 2
考虑另一种情况,我们将使用符号作为属性键。
<html>
<style>
body {
font-family: verdana;
color: #DE3163;
}
</style>
<body>
<script>
const x = {};
const y = Symbol();
Reflect.set(x, y, 'Welcome');
document.write(x[y]);
</script>
</body>
</html>
执行上述脚本后,网页上将显示一段文本。
示例 3
在下面的示例中,我们将在数组上设置一个属性。
<html>
<style>
body {
font-family: verdana;
color: #DE3163;
}
</style>
<body>
<script>
let x = ['Lion', 'Tiger', 'Deer'];
Reflect.set(x, 1, 'Elephant');
document.write(JSON.stringify(x));
</script>
</body>
</html>
当我们执行上述脚本时,会弹出输出窗口,显示网页上的文本。

