gpt4 book ai didi

javascript - 打印整个对象时,为什么 console.log 不显示 JavaScript 中 PROTOTYPES 添加的属性值?

转载 作者:行者123 更新时间:2023-12-03 05:13:13 26 4
gpt4 key购买 nike

我知道原型(prototype)用于添加属性或方法,JavaScript 对象从原型(prototype)继承属性和方法。

var  Person=function (name) {

this.Fname=name;
this.health=100;

};
//create object of Person
var Mateen=new Person("Mateen");
var Fariza=new Person("Fariza");


console.log(Mateen);
console.log(Fariza);

//output { Fname: 'Mateen', health: 100 }
{ Fname: 'Fariza', health: 100 }

//Adding method by prototype
Person.prototype.attack=function attack(target) {
target.health-=2;
}

Fariza.attack(Mateen);

console.log(Mateen);
console.log(Fariza);

//output: { Fname: 'Mateen', health: 98 }
{ Fname: 'Fariza', health: 100 }

//adding proterty by prototype
Person.prototype.level=1;

console.log(Mateen);
//output: { Fname: 'Mateen', health: 98 }

在最后的输出中,为什么打印整个对象时不显示水平。它确实显示了何时使用 console.log(Mateen.level)。

最佳答案

我想这可能取决于浏览器,但在 Chrome 中,您可以通过直接在控制台中展开 __proto__ 对象来查看它。

Chrome

Firefox 中,您可以单击输出,并在右侧/底部获得与 chrome 类似的输出。

Firefix

Safari 与 Chrome 类似

Safari

不幸的是,我无法验证 IE/Edge

关于javascript - 打印整个对象时,为什么 console.log 不显示 JavaScript 中 PROTOTYPES 添加的属性值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41716249/

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