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>

当我们执行上面的代码时,它将生成一个包含在网页上显示的文本的输出。

广告
© . All rights reserved.