JavaScript isExtensible方法

JavaScript isExtensible方法教程

JavaScript 中,Object.isExtensible 方法用来判断一个 对象 是否是可扩展的(是否可以在它上面添加新的 属性)。

JavaScript isExtensible详解

语法

Object.isExtensible(obj);

参数

参数 描述
obj 需要检测的对象。

返回值

表示给定对象是否可扩展的一个**Boolean** 。

说明

默认情况下,对象是可扩展的:即可以为他们添加新的属性。以及它们的 __proto__ 属性可以被更改。

Object.preventExtensionsObject.sealObject.freeze 方法都可以标记一个对象为不可扩展(non-extensible)。

案例

Object.isExtensible判断对象是否可扩展

使用 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>

程序运行后,控制台输出如下:

18_JavaScript Object isExtensible.png

通过以上案例,我们可以看到,我们可以通过 Object.preventExtensions,Object.seal 或 Object.freeze 三种方法中的一种,将一个对象变成不可扩展的。

JavaScript isExtensible方法总结

在 JavaScript 中,Object.isExtensible 方法用来判断一个对象是否是可扩展的(是否可以在它上面添加新的属性)。