Baseline Widely available
Object.isFrozen()
ì ê°ì²´ê° ëê²°ëëì§ íë³í©ëë¤.
const object1 = {
property1: 42,
};
console.log(Object.isFrozen(object1));
// Expected output: false
Object.freeze(object1);
console.log(Object.isFrozen(object1));
// Expected output: true
구문 매ê°ë³ì ë°í ê°
ê°ì²´ì ëê²° ì¬ë¶ë¥¼ ëíë´ë Boolean
.
ê°ì²´ë íì¥ ë¶ê°ì´ë©° 모ë ìì±ì´ ì¤ì ë¶ê° ë° ëª¨ë ë°ì´í° ìì±(ì¦, getter ëë setter ììê° ìë ì ê·¼ì ìì±ì´ ìë ìì±)ì´ ì°ê¸° ë¶ê°ì¸ ê²½ì°ìë§ ëê²°ë©ëë¤.
ìì // ìë¡ì´ ê°ì²´ë íì¥ ê°ë¥í´ì ëê²°ëì§ ììµëë¤.
Object.isFrozen({}); // === false
// íì¥ ë¶ê°ì¸ ë¹ ê°ì²´ë ë¹ ì±ë¡ ëê²°ë©ëë¤.
var vacuouslyFrozen = Object.preventExtensions({});
Object.isFrozen(vacuouslyFrozen); // === true
// ìì±ì´ íë ìë ì ê°ì²´ë íì¥ ê°ë¥íë¯ë¡ ëê²°ëì§ ììµëë¤.
var oneProp = { p: 42 };
Object.isFrozen(oneProp); // === false
// ê°ì²´ íì¥ì ë§ìë ì¬ì í ëê²°ëì§ ììµëë¤,
// ìì±ì´ ì¬ì í ì¤ì ê°ë¥(ë° ì°ê¸° ê°ë¥)í기ì.
Object.preventExtensions(oneProp);
Object.isFrozen(oneProp); // === false
// ...ê·¸ë ì§ë§ ê·¸ ìì± ìì ë ê°ì²´ë¥¼ ë¹ ì±ë¡ ëê²°ëê² í©ëë¤.
delete oneProp.p;
Object.isFrozen(oneProp); // === true
// ì°ê¸° ë¶ê°ì§ë§ ì¬ì í ì¤ì ê°ë¥í ìì±ì´ ìë íì¥ ë¶ê° ê°ì²´ë ëê²°ëì§ ììµëë¤.
var nonWritable = { e: "plep" };
Object.preventExtensions(nonWritable);
Object.defineProperty(nonWritable, "e", { writable: false }); // ì°ê¸° ë¶ê°ë¡ í¨
Object.isFrozen(nonWritable); // === false
// ê·¸ ìì±ì ì¤ì ë¶ê°ë¡ ë°ê¾¸ë©´ ê°ì²´ë¥¼ ëê²°ëê² í©ëë¤.
Object.defineProperty(nonWritable, "e", { configurable: false }); // ì¤ì ë¶ê°ë¡ í¨
Object.isFrozen(nonWritable); // === true
// ì¤ì ë¶ê°ì§ë§ ì¬ì í ì°ê¸° ê°ë¥ ìì±ì´ ìë íì¥ ë¶ê° ê°ì²´ë ëê²°ëì§ ììµëë¤.
var nonConfigurable = { release: "the kraken!" };
Object.preventExtensions(nonConfigurable);
Object.defineProperty(nonConfigurable, "release", { configurable: false });
Object.isFrozen(nonConfigurable); // === false
// ê·¸ ìì±ì ì°ê¸° ë¶ê°ë¡ ë°ê¾¸ë©´ ê°ì²´ë¥¼ ëê²°ëê² í©ëë¤.
Object.defineProperty(nonConfigurable, "release", { writable: false });
Object.isFrozen(nonConfigurable); // === true
// ì¤ì ê°ë¥ ì ê·¼ì ìì±ì´ ìë íì¥ ë¶ê° ê°ì²´ë ëê²°ëì§ ììµëë¤.
var accessor = {
get food() {
return "yum";
},
};
Object.preventExtensions(accessor);
Object.isFrozen(accessor); // === false
// ...íì§ë§ ê·¸ ìì±ì ì¤ì ë¶ê°ë¡ íë©´ ëê²°ë©ëë¤.
Object.defineProperty(accessor, "food", { configurable: false });
Object.isFrozen(accessor); // === true
// íì§ë§ ëê²°ëë ê°ì²´ë¥¼ ìí ê°ì¥ ì¬ì´ ë°©ë²ì ê°ì²´ì Object.freezeê° í¸ì¶ë ê²½ì°ì
ëë¤.
var frozen = { 1: 81 };
Object.isFrozen(frozen); // === false
Object.freeze(frozen);
Object.isFrozen(frozen); // === true
// ì ìì ìí´, ëê²°ë ê°ì²´ë íì¥ ë¶ê°ì
ëë¤.
Object.isExtensible(frozen); // === false
// ëí ì ìì ìí´, ëê²°ë ê°ì²´ë ë´ì¸ë©ëë¤.
Object.isSealed(frozen); // === true
주ì
ES5ìì, ì´ ë©ìëì ì¸ìê° ë¹ê°ì²´(ììí)ì¸ ê²½ì°, ê·¸ë¬ë©´ TypeError
ê° ë°ìí©ëë¤. ES6ìì, ë¹ê°ì²´ ì¸ìë ë§ì¹ ëê²°ë ë³´íµ ê°ì²´ìë ê²ì²ë¼ ì·¨ê¸ë©ëë¤, ê·¸ì true
를 ë°ííë.
Object.isFrozen(1);
// TypeError: 1ì ê°ì²´ê° ìëëë¤ (ES5 ì½ë)
Object.isFrozen(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