Baseline Widely available
СводкаÐеÑод Object.isSealed()
опÑеделÑеÑ, ÑвлÑеÑÑÑ Ð»Ð¸ обÑÐµÐºÑ Ð·Ð°Ð¿ÐµÑаÑаннÑм.
obj
ÐÑовеÑÑемÑй обÑекÑ.
ÐозвÑаÑÐ°ÐµÑ true
, еÑли обÑÐµÐºÑ ÑвлÑеÑÑÑ Ð·Ð°Ð¿ÐµÑаÑаннÑм, инаÑе возвÑаÑÐ°ÐµÑ false
. ÐбÑÐµÐºÑ ÑвлÑеÑÑÑ Ð·Ð°Ð¿ÐµÑаÑаннÑм, еÑли он ÑвлÑеÑÑÑ Ð½Ðµ ÑаÑÑиÑÑемÑм и еÑли вÑе его ÑвойÑÑва ÑвлÑÑÑÑÑ Ð½Ðµ наÑÑÑаиваемÑми и, ÑледоваÑелÑно, не ÑдалÑемÑми (но не обÑзаÑелÑно не запиÑÑваемÑми).
// Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð¾Ð±ÑекÑÑ Ð½Ðµ запеÑаÑанÑ.
var empty = {};
assert(Object.isSealed(empty) === false);
// ÐÑли Ð²Ñ ÑделаеÑе пÑÑÑой обÑÐµÐºÑ Ð½Ðµ ÑаÑÑиÑÑемÑм, он по опÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ ÑÑÐ°Ð½ÐµÑ Ð·Ð°Ð¿ÐµÑаÑаннÑм.
Object.preventExtensions(empty);
assert(Object.isSealed(empty) === true);
// То же Ñамое не веÑно Ð´Ð»Ñ Ð½Ðµ пÑÑÑого обÑекÑа, пока вÑе его ÑвойÑÑва не ÑÑанÑÑ Ð½Ðµ наÑÑÑаиваемÑми.
var hasProp = { fee: "fie foe fum" };
Object.preventExtensions(hasProp);
assert(Object.isSealed(hasProp) === false);
// Ðо Ñделав вÑе его ÑвойÑÑва не наÑÑÑаиваемÑми, обÑÐµÐºÑ ÑÑановиÑÑÑ Ð·Ð°Ð¿ÐµÑаÑаннÑм.
Object.defineProperty(hasProp, "fee", { configurable: false });
assert(Object.isSealed(hasProp) === true);
// ÐÑоÑÑейÑим ÑпоÑобом запеÑаÑаÑÑ Ð¾Ð±ÑекÑ, конеÑно, ÑвлÑеÑÑÑ Ð¸ÑполÑзование меÑода Object.seal.
var sealed = {};
Object.seal(sealed);
assert(Object.isSealed(sealed) === true);
// ÐапеÑаÑаннÑй обÑÐµÐºÑ Ð¿Ð¾ опÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ ÑвлÑеÑÑÑ Ð½Ðµ ÑаÑÑиÑÑемÑм.
assert(Object.isExtensible(sealed) === false);
// ÐапеÑаÑаннÑй обÑÐµÐºÑ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð·Ð°Ð¼Ð¾ÑоженнÑм, но ÑÑо не вÑегда Ñак.
assert(Object.isFrozen(sealed) === true); // вÑе ÑвойÑÑва Ñакже ÑвлÑÑÑÑÑ Ð½Ðµ запиÑÑваемÑми
var s2 = Object.seal({ p: 3 });
assert(Object.isFrozen(s2) === false); // ÑвойÑÑво 'p' вÑÑ ÐµÑÑ Ð·Ð°Ð¿Ð¸ÑÑваемое
var s3 = Object.seal({
get p() {
return 0;
},
});
assert(Object.isFrozen(s3) === true); // Ð´Ð»Ñ ÑвойÑÑв доÑÑÑпа знаÑение Ð¸Ð¼ÐµÐµÑ ÑолÑко иÑ
наÑÑÑаиваемоÑÑÑ
ÐÑимеÑаниÑ
Ð ES5, еÑли аÑгÑÐ¼ÐµÐ½Ñ Ð¼ÐµÑода не ÑвлÑеÑÑÑ Ð¾Ð±ÑекÑом (ÑвлÑеÑÑÑ Ð¿ÑимиÑивнÑм знаÑением), бÑÐ´ÐµÑ Ð²ÑбÑоÑено иÑклÑÑение TypeError
. Ð ES6 Ñакой аÑгÑÐ¼ÐµÐ½Ñ Ð±ÑÐ´ÐµÑ ÑаÑÑмаÑÑиваÑÑÑÑ, как пÑоÑÑой запеÑаÑаннÑй обÑÐµÐºÑ Ð¸ меÑод пÑоÑÑо веÑнÑÑ true
.
> Object.isSealed(1)
TypeError: 1 is not an object // код ES5
> Object.isSealed(1)
true // код ES6
СпеÑиÑикаÑии СовмеÑÑимоÑÑÑ Ñ Ð±ÑаÑзеÑами СмоÑÑиÑе Ñакже
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4