Baseline Widely available
Object.seal()
éçã¡ã½ããã¯ããªãã¸ã§ã¯ããå°å°ãã¾ãããªãã¸ã§ã¯ããå°å°ããã¨ãæ¡å¼µãææ¢ããæ¢åã®ãã¹ã¦ã®ããããã£ãæ§æä¸å¯ã«ãã¾ããå°å°ããããªãã¸ã§ã¯ãã¯ãåºå®ãããããããã£ä¸å¼ãæã¡ã¾ããæ°ããããããã£ã追å ããããæ¢åã®ããããã£ãé¤å»ããããåæå¯è½æ§ãæ§æå¯è½æ§ã夿´ãããããããã¿ã¤ããåå²ãå½ã¦ããããããã¨ã¯ã§ãã¾ãããæ¢åã®ããããã£ã®å¤ã¯ãæ¸ãè¾¼ã¿å¯è½ã§ããéã夿´ãããã¨ãã§ãã¾ãã seal()
ã¯æ¸¡ãããªãã¸ã§ã¯ããè¿ãã¾ãã
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
æ§æ 弿°
obj
å°å°ãããªãã¸ã§ã¯ãã§ãã
å°å°ããããªãã¸ã§ã¯ãã§ãã
解説ãªãã¸ã§ã¯ããå°å°ããã¨ãæ¡å¼µãææ¢ããæ¢åã®ãã¹ã¦ã®ããããã£ã®è¨è¿°åã configurable: false
ã«å¤æ´ãã¾ããããã¯ããªãã¸ã§ã¯ãã«ããããããã£ä¸å¼ãåºå®ãã¤ä¸å¤ã«ãã广ãããã¾ãããã¹ã¦ã®ããããã£ãæ§æä¸å¯ã«ãããã¨ã§ããã¼ã¿ããããã£ããã¢ã¯ã»ãµããããã£ã¸ã®å¤æããã®éãæå¶ãã¾ããããã¼ã¿ããããã£ã®å¤ã®å¤æ´ã¯æå¶ãã¾ãããå°å°ããããªãã¸ã§ã¯ãã§ããããã£ã®åé¤ã追å ããããã¯ãã¼ã¿ããããã£ããã¢ã¯ã»ãµããããã£ã¸ã®å¤æããã³ãã®éããããã¨ããã¨ãæé»çã«å¤±æããããï¼ä¸è¬çã«å³æ ¼ã¢ã¼ãã«ããã¦ã§ãããããã«éããï¼ TypeError
ãçºçãã¦å¤±æãã¾ãã
ãã©ã¤ãã¼ãè¦ç´ ã¯ããããã£ã§ã¯ãªããããããã£è¨è¿°åã®æ¦å¿µãããã¾ããããã©ã¤ãã¼ãè¦ç´ ã¯ããªãã¸ã§ã¯ããå°å°ããã¦ãããã©ããã«é¢ãããããªãã¸ã§ã¯ãã«è¿½å ãããé¤å»ããããããã¨ã¯ã§ãã¾ããã
ãããã¿ã¤ããã§ã¼ã³ã«ã¯æãã¤ããããã®ã¾ã¾ã«ãã¾ãããã ããæ¡å¼µã®ææ¢ã®å½±é¿ã«ããã [[Prototype]]
ã¯å代å
¥ã§ãã¾ããã
Object.freeze()
ã¨ã¯ç°ãªãã Object.seal()
ã§å°å°ããããªãã¸ã§ã¯ãã¯ãæ¸ãè¾¼ã¿å¯è½ã§ããéããæ¢åã®ããããã£ã夿´ãããã¨ãã§ãã¾ãã
const obj = {
prop() {},
foo: "bar",
};
// æ°ããããããã£ã追å ã§ããæ¢åã®ããããã£ã¯å¤æ´ãåé¤ãã§ãã
obj.foo = "baz";
obj.lumpy = "woof";
delete obj.prop;
const o = Object.seal(obj);
o === obj; // true
Object.isSealed(obj); // true
// å°å°ããããªãã¸ã§ã¯ãã§ããããããã£ã®å¤ã¯å¤æ´ã§ãã
ï½obj.foo = "quux";
// ãããããã¼ã¿ããããã£ããã¢ã¯ã»ãµããããã£ã®å¤æããã®éã¯ã§ãã¾ããã
Object.defineProperty(obj, "foo", {
get() {
return "g";
},
}); // TypeError ãçºç
// ããããã£ã®å¤ã®å¤æ´ãé¤ãããããã夿´ã失æãã¾ãã
obj.quaxxor = "the friendly duck";
// æé»çã«ããããã£ã¯è¿½å ããã¾ããã
delete obj.foo;
// æé»çã«ããããã£ã¯åé¤ããã¾ããã
// ã¾ãã峿 ¼ã¢ã¼ãã§ã¯ãããã®è©¦ã¿ã«å¯¾ã㦠TypeError ãçºçãã¾ãã
function fail() {
"use strict";
delete obj.foo; // TypeError ãçºç
obj.sparky = "arf"; // TypeError ãçºç
}
fail();
// Object.defineProperty ãç¨ãã¦è¿½å ãããã¨ãã¦ãã¨ã©ã¼ãçºçãã¾ã
Object.defineProperty(obj, "ohai", {
value: 17,
}); // TypeError ãçºç
Object.defineProperty(obj, "foo", {
value: "eit",
}); // æ¢åã®ããããã£ã®å¤ã夿´
éãªãã¸ã§ã¯ãã®å¼·å¶
ES5 ã§ã¯ããã®ã¡ã½ããã¸ã®å¼æ°ããªãã¸ã§ã¯ãã§ã¯ãªãå ´å (ããªããã£ãã§ããå ´å)ã TypeError
ã«ãªãã¾ãã ES2015 ã§ã¯ããªãã¸ã§ã¯ãã§ã¯ãªã弿°ã¯å°å°ãããé常ã®ãªãã¸ã§ã¯ãã¨åæ§ã«æ±ãããåç´ã«ãããè¿ãã¾ãã
Object.seal(1);
// TypeError: 1 is not an object (ES5 code)
Object.seal(1);
// 1 (ES2015 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