ÐамÑна влаÑÑивоÑÑÑ "prototype"
РкодÑ, Ñо показаний нижÑе, ми ÑÑвоÑÑÑмо ÑÑнкÑÑÑ-конÑÑÑÑкÑÐ¾Ñ new Rabbit Ñ Ð¿Ð¾ÑÑм змÑнÑÑмо ÑÑ prototype.
Ðа поÑаÑкÑ, маÑмо Ñей код:
function Rabbit() {}
Rabbit.prototype = {
eats: true
};
let rabbit = new Rabbit();
alert( rabbit.eats ); // true
-
Ðи додали Ñе ÑÑдок ÐºÐ¾Ð´Ñ (видÑлений). Що покаже ÑепеÑ
alert?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 ); // ? -
Ð ÑкÑо Ñак (Ñакож з видаленим ÑÑдком кодÑ)?
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 ); // ?
ÐÑдповÑдÑ:
-
true.ÐеÑепÑизнаÑеннÑ
Rabbit.prototypeвÑÑановлÑÑ Ð²Ð»Ð°ÑÑивÑÑÑÑ[[Prototype]]Ð´Ð»Ñ Ð¾Ð±âÑкÑÑв, ÑÐºÑ Ð±ÑдÑÑÑ ÑÑвоÑÐµÐ½Ñ Ð¿ÑÑÐ»Ñ ÑÑого. Ðле воно жодним Ñином не Ð²Ð¿Ð»Ð¸Ð²Ð°Ñ Ð½Ð° вже ÑÑнÑÑÑÑ Ð¾Ð±âÑкÑи. -
false.ÐбâÑкÑи пÑизнаÑаÑÑÑÑÑ ÑлÑÑ Ð¾Ð¼ поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° Ð½Ð¸Ñ . ÐбâÑÐºÑ Ð· влаÑÑивоÑÑÑ
Rabbit.prototypeне дÑблÑвавÑÑ. Це Ñой Ñамий обâÑÐºÑ Ð½Ð° Ñкий поÑилаÑÑÑÑÑ Ñк ÑеÑезRabbit.prototype, Ñак Ñ ÑеÑез влаÑÑивÑÑÑÑ[[Prototype]]обâÑкÑаrabbit.РоÑже, коли ми змÑнÑÑмо вмÑÑÑ Ñакого обâÑкÑа ÑеÑез поÑиланнÑ, ÑÐ°ÐºÑ Ð·Ð¼Ñни ÑÑаÑÑÑ Ð²Ð¸Ð´Ð¸Ð¼Ñ Ñ ÑеÑез ÑнÑÑ Ð¿Ð¾ÑиланнÑ.
-
true.УÑÑ
deleteопеÑаÑÑÑ Ð·Ð°ÑÑоÑовÑÑÑÑÑÑ Ð»Ð¸Ñе безпоÑеÑеднÑо до Ñамого обâÑкÑа. ТÑÑdelete rabbit.eatsнамагаÑÑÑÑÑ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñи влаÑÑивÑÑÑÑeatsз обâÑкÑаrabbit, але ÑÐ°ÐºÐ¾Ñ Ð²Ð»Ð°ÑÑивоÑÑÑ Ð½ÐµÐ¼Ð°Ñ. Ð ÑÐ¾Ð¼Ñ Ñака опеÑаÑÑÑ Ð½Ðµ Ð¼Ð°Ñ Ð½ÑÑкого еÑекÑÑ. -
undefined.ÐлаÑÑивÑÑÑÑ
eatsвидалена з пÑоÑоÑипÑ, вона бÑлÑÑе не ÑÑнÑÑ.