在 JavaScript 中,Object.isExtensible 方法用来判断一个 对象 是否是可扩展的(是否可以在它上面添加新的 属性)。
Object.isExtensible(obj);
参数 | 描述 |
---|---|
obj | 需要检测的对象。 |
表示给定对象是否可扩展的一个**Boolean** 。
默认情况下,对象是可扩展的:即可以为他们添加新的属性。以及它们的 __proto__
属性可以被更改。
Object.preventExtensions,Object.seal 或 Object.freeze 方法都可以标记一个对象为不可扩展(non-extensible)。
使用 Object.isExtensible 判断对象是否可扩展
<!DOCTYPE html>
<html>
<head>
<title>JavaScript Object.isExtensible判断对象是否可扩展</title>
<script type="text/javascript">
console.log("嗨客网(www.haicoder.net)");
function createPerson(name, age, sex){
var person = new Object();
person.name = name;
person.age = age;
person.sex = sex;
person.sayHi = function(){
console.log("I am", this.name, "i am", this.age, "years old", "and my sex is", this.sex);
}
return person;
}
var person = createPerson("HaiCoder", 109, "F");
var isExtensible = Object.isExtensible(person);
console.log("Person is Extensible =", isExtensible);
Object.preventExtensions(person);
var isExtensible2 = Object.isExtensible(person);
console.log("preventExtensions Person is Extensible2 =", isExtensible2);
var person2 = createPerson("HaiCoder", 109, "F");
var isExtensible3 = Object.isExtensible(person2);
console.log("Person is Extensible3 =", isExtensible3);
Object.seal(person2);
var isExtensible4 = Object.isExtensible(person2);
console.log("seal Person is Extensible4 =", isExtensible4);
var person3 = createPerson("HaiCoder", 109, "F");
var isExtensible5 = Object.isExtensible(person3);
console.log("Person is Extensible5 =", isExtensible5);
Object.freeze(person3);
var isExtensible6 = Object.isExtensible(person3);
console.log("freeze Person is Extensible6 =", isExtensible6);
</script>
</head>
</html>
程序运行后,控制台输出如下:
通过以上案例,我们可以看到,我们可以通过 Object.preventExtensions,Object.seal 或 Object.freeze 三种方法中的一种,将一个对象变成不可扩展的。
在 JavaScript 中,Object.isExtensible 方法用来判断一个对象是否是可扩展的(是否可以在它上面添加新的属性)。