gpt4 book ai didi

javascript - 为什么一个实例化的对象在原型(prototype)被重新赋值给一个空对象后仍然有原型(prototype)的属性?

转载 作者:行者123 更新时间:2023-11-29 10:59:13 24 4
gpt4 key购买 nike

<分区>

function Rabbit() {}
Rabbit.prototype = {
eats: true
};

let rabbit = new Rabbit();

Rabbit.prototype = {};

alert( rabbit.eats ); // ?
为什么 rabbit.eat 在我们将其引用(即构造函数原型(prototype) Rabbit)设置为空时显示 true?

据我所知,当编译器读取语句 (rabbit.eat) 时,它首先在对象中检查该属性是否存在,然后在 rabbit.__proto__ 中查找,即 Rabbit。属性的原型(prototype)。但是这里我们分配了 Rabbit.prototype = {} 所以为什么对象 rabbit 仍然有 eat 属性?

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com