TypeError: "x" is read-only
ë©ìì§
TypeError: "x" is read-only (Firefox)
TypeError: 0 is read-only (Firefox)
TypeError: Cannot assign to read only property 'x' of #<Object> (Chrome)
TypeError: Cannot assign to read only property '0' of [object Array] (Chrome)
ìë¬ ì í
TypeError
무ìì´ ì못 ë 걸ê¹?
ì ìë³ì ëë ê°ì²´ íë¡í¼í°ê° ì½ê¸° ì ì©ì¼ë¡ í ë¹ë ê²½ì°ì ëë¤.(ìë°í ë°ì§ìë©´ ì°ê¸°ê° ë¶ê°ë¥í ë°ì´í° ìì±ì ëë¤.)
ì´ ìë¬ë ì격모ëììë§ ë±ì¥í©ëë¤. ì격íì§ ìì 모ëììë ì½ê¸°ì ì© ìì±ì 묵ìì ì¼ë¡ 무ìë©ëë¤.
ìì
>ì ì íì§ ìì ì
ì½ê¸° ì ì© ìì±ì ì주 íí ê²ì ìëì§ë§, Object.defineProperty() ë Object.freeze() 를 ì´ì©í´ ë§ë¤ì´ ì§ ì ììµëë¤.
"use strict";
var obj = Object.freeze({ name: "Elsa", score: 157 });
obj.score = 0; // TypeError
("use strict");
Object.defineProperty(this, "LUNG_COUNT", { value: 2, writable: false });
LUNG_COUNT = 3; // TypeError
("use strict");
var frozenArray = Object.freeze([0, 1, 2]);
frozenArray[0]++; // TypeError
ìë° ì¤í¬ë¦½í¸ìë ëª ê°ì§ ì½ê¸° ì ì© ìì±ì´ ë´ì¥ëì´ ììµëë¤. ìë§ë ìíì ìì를 ì¬ì ìíë ¤ê³ í ê² ê°ìµëë¤.
"use strict";
Math.PI = 4; // TypeError
ì´ë ê²ë ë¶ê°ë¥í©ëë¤.
ì ìë³ì undefined ëí ì½ê¸°ì ì©ì¼ë¡, ì¬ëë¤ì´ 모ë ì¢ìíì§ ìë "undefined is not a function" ìë¬ê° ë¤ìê³¼ ê°ì ê²½ì° ë±ì¥í©ëë¤:
"use strict";
undefined = function () {}; // TypeError: "undefined" is read-only
ì ì í ì
"use strict";
var obj = Object.freeze({ name: "Score", points: 157 });
obj = { name: obj.name, points: 0 }; // replacing it with a new object works
("use strict");
var LUNG_COUNT = 2; // a `var` works, because it's not read-only
LUNG_COUNT = 3; // ok (anatomically unlikely, though)
ë보기
Object.defineProperty()Object.freeze()- "Which animals have three lungs?" on answers.com
- Klingons (another answer to that query)