Object.isExtensible
Object.isExtensible
Object.isExtensible()
方法判断一个对象是否是可扩展的(是否可以在它上面添加新的属性)。
语法
Object.isExtensible(obj)
参数
obj需要检测的对象
返回值
Boolean
表示给定对象是否可扩展。
描述
默认情况下,对象是可扩展的:即可以为他们添加新的属性。以及它们的 __proto__
属性可以被更改。Object.preventExtensions
,Object.seal
或 Object.freeze
方法都可以标记一个对象为不可扩展(non-extensible)。
示例
// New objects are extensible.
var empty = {};
Object.isExtensible(empty // === true
// ...but that can be changed.
Object.preventExtensions(empty
Object.isExtensible(empty // === false
// Sealed objects are by definition non-extensible.
var sealed = Object.seal{}
Object.isExtensible(sealed // === false
// Frozen objects are also by definition non-extensible.
var frozen = Object.freeze{}
Object.isExtensible(frozen // === false
注意事项
在 ES5 中,如果参数不是一个对象类型,将抛出一个 TypeError
异常。在 ES6 中, non-object 参数将被视为一个不可扩展的普通对象,因此会返回 false 。
Object.isExtensible(1
// TypeError: 1 is not an object (ES5 code)
Object.isExtensible(1
// false (ES2015 code)
规范
Specification | Status | Comment |
---|---|---|
ECMAScript 5.1 (ECMA-262)The definition of 'Object.isExtensible' in that specification. | Standard | Initial definition. Implemented in JavaScript 1.8.5. |
ECMAScript 2015 (6th Edition, ECMA-262)The definition of 'Object.isExtensible' in that specification. | Standard | |
ECMAScript Latest Draft (ECMA-262)The definition of 'Object.isExtensible' in that specification. | Living Standard | |
浏览器兼容性
Feature | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Basic Support | 6 | (Yes) | 4 | 9 | 12 | 5.1 |
Feature | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
Basic Support | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
See also
Object.preventExtensions()
Object.seal()
Object.isSealed()
Object.freeze()
Object.isFrozen()
Reflect.isExtensible()
© 2005–2017 Mozilla Developer Network and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/isExtensible