JavaScript handler.isExtensible()方法



JavaScript 中的 handler.isExtensible() 方法是 Proxy 对象的一部分。它用于确定是否可以添加新属性或是否可以添加目标对象。如果目标对象是可扩展的,则该方法返回 true;否则,它将返回 false。当您希望确保对象不会进一步更改或保持打开状态以进行更多添加时,这可能非常有用。例如,在尝试向对象添加新属性之前,可以使用此方法检查对象是否可扩展。

语法

以下是 JavaScript handler.isExtensible() 方法的语法 -


new Proxy(target, {
	 	isExtensible(target) {}
});

参数

  • target − 它保存目标对象。

返回值

此方法返回一个 Boolean 值。

示例 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>

当我们执行上述代码时,它将生成一个由网页上显示的文本组成的输出。