gpt4 book ai didi

javascript - 为什么 Object._proto_ 引用 Function.prototype?

转载 作者:行者123 更新时间:2023-11-29 23:18:56 25 4
gpt4 key购买 nike

我正在看下面这张对象和函数之间关系的图表,我想知道为什么 Object.proto 指的是 Function.prototype?

enter image description here

最佳答案

__proto__ 指对象的直接原型(prototype)祖先。举个简单的例子,objobj2 的直接祖先:

let obj = {}
// make obj2 with obj parent
let obj2 = Object.create(obj)
obj === obj2.__proto__ // true

在您的图表中,它显示了从函数到 Function.prototype 再到 Object.prototype 的原型(prototype)链。您可以像链条一样跟随它:

function test(){}

console.log(test.__proto__ === Function.prototype)
console.log(test.__proto__.__proto__ === Object.prototype)

// alternatively:
Object.getPrototypeOf(test) // Function.prototype

在你的例子中 Object.__proto__Function.prototype 因为 Object 是一个构造函数,与 StringNumber 是函数。但这与 Object.prototype 不同,后者是其他对象的 __proto__ 属性指向的对象:

console.log (Object)
console.log(typeof Object)

// call the function to create an object
let o = Object()
// o's prototype is the Object prototype
console.log (o.__proto__ === Object.prototype)

关于javascript - 为什么 Object._proto_ 引用 Function.prototype?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51509295/

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