gpt4 book ai didi

javascript - 为什么 getPrototypeOf() 在 JavaScript 中返回不正确的构造函数?

转载 作者:数据小太阳 更新时间:2023-10-29 06:06:11 26 4
gpt4 key购买 nike

var protoRabbit = {size: "small"};
var fastRabbit = Object.create(protoRabbit);
console.log(Object.getPrototypeOf(fastRabbit));

以上片段打印:

Object { size: "small" }

这不应该打印 protoRabbit {size: "small"} 吗?我的理解中缺少什么?

最佳答案

打印在对象前面的名称是构造函数的名称。您的对象 protoRabbit 具有构造函数 Object,因为您使用对象字面量创建了此对象:

var protoRabbit = {size: "small"};

如果你想让这个对象有一个不同的构造函数,你必须使用你自己的构造函数:

function Constr() {
this.size = "small";
}
var protoRabbit = new Constr();
var fastRabbit = Object.create(protoRabbit);
console.log(Object.getPrototypeOf(fastRabbit)); //Constr { size: "small" }

编辑

我不得不同意 Demurgos 的回答,console.log(obj); 的结果取决于浏览器的实现。因此它可能因浏览器而异,并且(显然)有时甚至会在同一个浏览器内发生变化(link)。

关于javascript - 为什么 getPrototypeOf() 在 JavaScript 中返回不正确的构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30034040/

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