'prototype' ë³ê²½í기
ìë ì½ëìì new Rabbit를 ë§ë¤ê³ Rabbitì "prototype"ì ë³ê²½í©ëë¤.
ìì ì½ëë ë¤ìê³¼ ê°ìµëë¤.
function Rabbit() {}
Rabbit.prototype = {
eats: true
};
let rabbit = new Rabbit();
alert( rabbit.eats ); // true
-
ìëì ê°ì ì½ë를 ì¶ê°(ê°ì¡°ë ì¤)íë©´ ì¼ë¿ì°½ì 무ìì´ ì¶ë ¥ë ê¹ì?
function Rabbit() {} Rabbit.prototype = { eats: true }; let rabbit = new Rabbit(); Rabbit.prototype = {}; alert( rabbit.eats ); // ? -
ìëì ê°ì´ ì½ë를 ë³ê²½íë©´ ì¼ë¿ì°½ì 무ìì´ ì¶ë ¥ë ê¹ì?
function Rabbit() {} Rabbit.prototype = { eats: true }; let rabbit = new Rabbit(); Rabbit.prototype.eats = false; alert( rabbit.eats ); // ? -
ìëì ê°ì´
delete를 ì¬ì©íë©´ ì¼ë¿ì°½ì 무ìì´ ì¶ë ¥ë ê¹ì?function Rabbit() {} Rabbit.prototype = { eats: true }; let rabbit = new Rabbit(); delete rabbit.eats; alert( rabbit.eats ); // ? -
ë§ì§ë§ ì½ë를 ì¤ííë©´ ì¼ë¿ì°½ì 무ìì´ ì¶ë ¥ë ê¹ì?
function Rabbit() {} Rabbit.prototype = { eats: true }; let rabbit = new Rabbit(); delete Rabbit.prototype.eats; alert( rabbit.eats ); // ?
ì ëµ:
-
trueRabbit.prototypeì 무ì¸ê°ë¥¼ í ë¹íë©´ ê·¸ ê°ì´ ìë¡ì´ ê°ì²´ì[[Prototype]]ì´ ë©ëë¤. ë¤ë§ ì´ë¯¸ ë§ë¤ì´ì§ ê°ì²´ì ì´ ê·ì¹ì´ ì ì©ëì§ ììµëë¤. -
falseê°ì²´ë 참조ì ìí´ í ë¹ë©ëë¤.
Rabbit.prototypeì´ ì°¸ì¡°íë ê°ì²´ë ë¨ íëë¿ì¸ë°, ì´ ê°ì²´ëRabbit.prototypeê³¼rabbitì[[Prototype]]ì ì¬ì©í´ 참조í ì ììµëë¤.ë°ë¼ì ë ì¤ íëì 참조를 ì¬ì©í´ ê°ì²´ì ë´ì©ì ë³ê²½íë©´ ë¤ë¥¸ 참조를 íµí´ìë ë³ê²½ ë´ì©ì ë³¼ ì ììµëë¤.
-
truedeleteì°ì°ì ê°ì²´ì ì§ì ì ì©ë©ëë¤.delete rabbit.eatsërabbitììeatsíë¡í¼í°ë¥¼ ì ê±°íëë°,rabbitìeatsê° ììµëë¤. ë°ë¼ìdeleteë ìë¬´ë° ìí¥ì ì£¼ì§ ììµëë¤. -
undefinedíë¡í¼í°
eatsê° íë¡í íì ìì ìì ëì기 ë문ìeatsë ëì´ì ì¡´ì¬íì§ ììµëë¤.