JavaScript参考手册
对象 | Object
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()
Edit this page on MDN
© 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
对象 | Object相关
JavaScript 是一种高级编程语言,通过解释执行,是一门动态类型,面向对象(基于原型)的解释型语言。它已经由ECMA(欧洲电脑制造商协会)通过 ECMAScript 实现语言的标准化。它被世界上的绝大多数网站所使用,也被世界主流浏览器( Chrome、IE、FireFox、Safari、Opera )支持。JavaScript 是一门基于原型、函数先行的语言,是一门多范式的语言,它支持面向对象编程,命令式编程,以及函数式编程。它提供语法来操控文本、数组、日期以及正则表达式等,不支持 I/O,比如网络