تغÛÛØ± "prototype"
در کد Ø²ÛØ± new Rabbit را Ø§ÛØ¬Ø§Ø¯ Ù
ÛâÚ©ÙÛÙ
٠سپس Ø³Ø¹Û Ù
ÛâÚ©ÙÛÙ
Ù¾Ø±ÙØªÙتاÛÙ¾ آ٠را تغÛÛØ± دÙÛÙ
.
در Ø´Ø±ÙØ¹Ø ٠ا اÛ٠کد را دارÛÙ :
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از Ù¾Ø±ÙØªÙتاÛÙ¾ ØØ°Ù Ø´Ø¯Ù Ø§Ø³ØªØ Ø¯Ûگر ÙØ¬Ùد ÙØ¯Ø§Ø±Ø¯.