JavaScript Handler isExtensible() 方法
JavaScript 中的 handler.isExtensible() 方法是 Proxy 对象的一部分。它用于判断目标对象是否可以添加新属性。如果目标对象可扩展,则该方法返回 true;否则返回 false。这在您希望确保对象不会被进一步修改或保持开放状态以进行更多添加的情况下非常有用。例如,您可以在尝试向对象添加新属性之前使用此方法检查对象是否可扩展。
语法
以下是 JavaScript handler.isExtensible() 方法的语法 -
new Proxy(target, {
isExtensible(target) {}
});
参数
- target − 保存目标对象。
返回值
此方法返回一个布尔值。
示例 1
我们来看以下示例,我们将检查对象的可扩展性。
<html>
<style>
body {
font-family: verdana;
color: #DE3163;
}
</style>
<body>
<script>
const obj = {
car: "POLO GT",
model: 2023
};
document.write(Reflect.isExtensible(obj) + " < br > ");
Object.preventExtensions(obj); document.write(Reflect.isExtensible(obj));
</script>
</body>
</html>
输出
如果我们执行上述程序,它将在网页上显示一段文本。
示例 2
考虑另一种场景,我们将通过添加新属性来扩展对象。
<html>
<style>
body {
font-family: verdana;
color: #DE3163;
}
</style>
<body>
<script>
const x = {
car: "POLO GT",
model: 2024
};
document.write(Reflect.isExtensible(x) + " < br > ");
x.manufacture = "INDIA"; document.write(x.manufacture + " < br > ");
document.write(Reflect.isExtensible(x));
</script>
</body>
</html>
输出
执行上述脚本后,它将在网页上显示文本。
示例 3
在下面的示例中,我们将使用 object.freeze() 创建一个不可扩展的对象。
<html>
<style>
body {
font-family: verdana;
color: #DE3163;
}
</style>
<body>
<script>
const x = {
fruit: 'Apple',
season: 'winter'
};
document.write(Reflect.isExtensible(x) + " < br > "); // true
Object.freeze(x); document.write(Reflect.isExtensible(x));
</script>
</body>
</html>
当我们执行上述代码时,它将生成由网页上显示的文本组成的输出。

