在线文档教程

Object.isSealed

Object.isSealed

Object.isSealed() 方法判断一个对象是否被密封。

语法

Object.isSealed(obj)

参数

obj要被检查的对象。

返回值

表示给定对象是否被密封的一个Boolean 。

描述

如果这个对象是密封的,则返回 true,否则返回 false。密封对象是指那些不可扩展 的,且所有自身属性都不可配置且因此不可删除(但不一定是不可写)的对象。

Examples

// Objects aren't sealed by default. var empty = {}; Object.isSealed(empty // === false // If you make an empty object non-extensible, // it is vacuously sealed. Object.preventExtensions(empty Object.isSealed(empty // === true // The same is not true of a non-empty object, // unless its properties are all non-configurable. var hasProp = { fee: 'fie foe fum' }; Object.preventExtensions(hasProp Object.isSealed(hasProp // === false // But make them all non-configurable // and the object becomes sealed. Object.defineProperty(hasProp, 'fee', {   configurable: false } Object.isSealed(hasProp // === true // The easiest way to seal an object, of course, // is Object.seal. var sealed = {}; Object.seal(sealed Object.isSealed(sealed // === true // A sealed object is, by definition, non-extensible. Object.isExtensible(sealed // === false // A sealed object might be frozen, // but it doesn't have to be. Object.isFrozen(sealed // === true // (all properties also non-writable) var s2 = Object.seal{ p: 3 } Object.isFrozen(s2 // === false // ('p' is still writable) var s3 = Object.seal{ get p() { return 0; } } Object.isFrozen(s3 // === true // (only configurability matters for accessor properties)

注意事项

在ES5中,如果这个方法的参数不是一个对象(一个原始类型),那么它会导致TypeError。在ES2015中,非对象参数将被视为是一个密封的普通对象,只返回true

Object.isSealed(1 // TypeError: 1 is not an object (ES5 code) Object.isSealed(1 // true (ES2015 code)

规范

SpecificationStatusComment
ECMAScript 5.1 (ECMA-262)The definition of 'Object.isSealed' in that specification.StandardInitial definition. Implemented in JavaScript 1.8.5.
ECMAScript 2015 (6th Edition, ECMA-262)The definition of 'Object.isSealed' in that specification.Standard
ECMAScript Latest Draft (ECMA-262)The definition of 'Object.isSealed' in that specification.Living Standard

浏览器兼容性

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic Support6(Yes)49125.1

FeatureAndroidChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
Basic Support(Yes)(Yes)(Yes)(Yes)(Yes)(Yes)(Yes)