gpt4 book ai didi

javascript - obj.prototype 和 Object.getPrototypeOf(obj) 有什么区别

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

我使用 Object.create 创建一个对象方法,所以Object.create期望原型(prototype)对象作为第一个参数,属性描述符作为第二个参数。

var obj = Object.create({a:2},{b:{value:3}})

所以,{a:2}是 obj 的原型(prototype)。但如果我正在寻找像 obj.prototype 这样的原型(prototype)返回undefined但如果我使用 Object.getPrototypeOf(obj) 检查返回{a:2}

你能告诉我这里出了什么问题吗?那么,Object.create中的第一个参数是什么呢? ?

谢谢

最佳答案

您已经发现 JavaScript 语言中最奇怪的一件事:prototype 属性。在 JavaScript 中,对象通过原型(prototype)链从父对象继承属性。

但是 JavaScript 的工作原理是,对象的 prototype 属性不是该对象的原型(prototype) - 它是用作使用 new 创建的其他对象的原型(prototype)的值。.因此,Car.prototype 的值将成为使用 new Car() 创建新实例的原型(prototype)

原型(prototype)继承意义上的对象原型(prototype)实际上是通过 Object.getPrototypeOf() 获得的。您可以在 Understanding the prototype property in JavaScript 中了解更多相关信息。

关于javascript - obj.prototype 和 Object.getPrototypeOf(obj) 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38611992/

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