Baseline Widely available
Object.seal()
ë©ìëë ê°ì²´ë¥¼ ë°ë´í©ëë¤. ê°ì²´ë¥¼ ë°ë´íë©´ ê·¸ ê°ì²´ìë ìë¡ì´ ìì±ì ì¶ê°í ì ìê³ , íì¬ ì¡´ì¬íë 모ë ìì±ì ì¤ì ë¶ê°ë¥ ìíë¡ ë§ë¤ì´ì¤ëë¤. íì§ë§ ì°ê¸° ê°ë¥í ìì±ì ê°ì ë°ë´ íìë ë³ê²½í ì ììµëë¤(ìì 주 : ë°ë¡ ì´ ì ì´ Object.freeze()
ìì ì°¨ì´ë¼ê³ í ì ììµëë¤).
const object1 = {
property1: 42,
};
Object.seal(object1);
object1.property1 = 33;
console.log(object1.property1);
// Expected output: 33
delete object1.property1; // Cannot delete when sealed
console.log(object1.property1);
// Expected output: 33
구문 매ê°ë³ì ë°í ê°
ë´ì¸í ê°ì²´.
ì¤ëªê°ì²´ë 기본ì ì¼ë¡ íì¥ì´ ê°ë¥(extensible)í©ëë¤. ì¦, ìë¡ì´ ìì±ì ì¶ê°í ì ììµëë¤. íì§ë§ ê°ì²´ë¥¼ ë°ë´íë©´ ê·¸ ê°ì²´ì ìë¡ì´ ìì±ì ì¶ê°í ì ìê²ëê³ , ê·¸ ê°ì²´ ë´ì ì¡´ì¬íë 모ë ìì±ì´ ì¤ì ë¶ê°ë¥(non-configurable)í´ ì§ëë¤. ê°ì²´ë¥¼ ë°ë´íë©´ ê°ì²´ì ìì±ì ê³ ì ë ë¶ë³ì ìíë¡ ë§ëëë¤. 모ë ìì±ì ì¤ì ë¶ê°ë¥í ìíë¡ ë§ëë ê²ì ë°ì´í° ìì±(data properties)ì ì ê·¼ì ìì±(accessor properties)ì¼ë¡, ëë ì ê·¼ì ìì±ì ë°ì´í° ìì±ì¼ë¡ ë³ê²½í ì ìê² ë§ëëë¤. íì§ë§ ê°ì²´ë¥¼ ìì í ì¼ë ¤ì ë°ì´í° ìì±ì ê°ë ë³ê²½í ì ìê² ë§ëë Object.freeze()
ì ë¬ë¦¬, Object.seal()
ì ê°ì²´ë¥¼ ë°ë´í íìë ê·¸ ê°ì²´ì ë°ì´í° ìì±ì ê°ì ì¬ì í ë³ê²½í ì ìê² í´ì¤ëë¤. ë¤ë§, ë°ë´í íìë ê°ì²´ë¥¼ ì¼ë¦¬ë ê²ê³¼ ë§ì°¬ê°ì§ë¡ ìì±ì ì¶ê°/ìì ë ë°ì´í° ìì±ê³¼ ì ê·¼ì ìì± ì¬ì´ì ì íì ì묵ì ì´ë , ìëë©´ strict mode ììì ê°ì´ ëª
ìì ì¼ë¡ TypeError
ìì¸ë¥¼ ë°ììí¤ë 모ë ì¤í¨ë¡ ëë©ëë¤.
íë¡í íì
ì²´ì¸ì ë°ë´ ì ì´ë íë ë¬ë¼ì§ì§ ììµëë¤. íì§ë§ Object.prototype.__proto__
ì§ìì´ ì¤ë¨ëììµëë¤ ìì±ì í¨ê» ë°ë´ë©ëë¤.
var obj = {
prop: function () {},
foo: "bar",
};
// ì ìì±ì´ ì¶ê°ëê³ , 기존 ìì±ì ë³ê²½ëê±°ë ì ê±°ë ì ìì
obj.foo = "baz";
obj.lumpy = "woof";
delete obj.prop;
var o = Object.seal(obj);
assert(o === obj);
assert(Object.isSealed(obj) === true);
// ë°ë´í ê°ì²´ì ìì±ê°ì ë°ë´ ì ê³¼ ë§ì°¬ê°ì§ë¡ ë³ê²½í ì ìì
obj.foo = "quux";
obj.foo; // 'quux' ê° ì¶ë ¥ë¨
// ë°ì´í° ìì±ê³¼ ì ê·¼ì ìì± ì¬ì´ì ì íì ë¶ê°
Object.defineProperty(obj, "foo", {
get: function () {
return "g";
},
}); // TypeError ë°ì
// ìì±ê°ì ë³ê²½ì ì ì¸í ì´ë¤ ë³ê²½ë ì ì©ëì§ ìì
obj.quaxxor = "the friendly duck"; // ìë¬ê° ëì§ë ìì§ë§ ìì±ì ì¶ê°ëì§ ìì
delete obj.foo; // ìë¬ê° ëì§ë ìì§ë§ ìì±ì´ ìì ëì§ ìì
// strict mode ììë ìì±ê°ì ë³ê²½ì ì ì¸í 모ë ë³ê²½ì TypeError ë°ì
function fail() {
"use strict";
delete obj.foo; // TypeError ë°ì
obj.sparky = "arf"; // TypeEror ë°ì
}
fail();
// Object.defineProperty() ë©ìë를 ì´ì©í ìì±ì ì¶ê°ë TypeError ë°ì
Object.defineProperty(obj, "ohai", { value: 17 }); // TypeErorr ë°ì
Object.defineProperty(obj, "foo", { value: "eit" }); // ìì±ê°ì ë³ê²½ì ê°ë¥í¨
ì°¸ê³
ES5ììë Object.seal()
ë©ìëì ì¸ìê° ê°ì²´ê° ìë ë(ì¦, ììíì¼ ë)ë TypeError
ê° ë°ìí©ëë¤. ES6ììë ììí ì¸ìë ë°ë´ë ê°ì²´ë¼ê³ ì·¨ê¸í´ì TypeError
를 ë°ììí¤ì§ ìê³ ììí ì¸ì를 ê·¸ëë¡ ë°íí©ëë¤.
> Object.seal(1)
TypeError: 1 is not an object // ES5 code
> Object.seal(1)
1 // ES6 code
ëª
ì¸ ë¸ë¼ì°ì í¸íì± ê°ì´ 보기
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