Object构造函数如何访问.toString()方法?

问题描述 投票:1回答:2

我正在尝试Object.prototype.toString()方法。我知道创建的对象是[[Prototype]]链接到Object.prototype对象的,因此可以访问此方法。但是,也可以调用Object.toString()。我想知道当对象构造函数本身没有直接方法.toString()时可以在哪里访问此方法。对象构造函数[[Prototype]]是否链接到其自己的原型对象?

Object.toString() // "function Object() { [native code] }"
javascript prototype
2个回答
3
投票

[ObjectFunction,它是object

这很令人困惑,但是由于Object构造函数是一个函数,因此它共享常见的Object.prototype方法,并且当您在函数上运行toString时,通常会返回该函数的代码。


0
投票

对象构造函数[[Prototype]]是否链接到其自己的原型对象?

Object创建一个对象包装器,这意味着在Object constructor上也可以使用已定义对象的所有可用方法,因此可以直接调用.toString()

这里是一个小证明:

const foo = {};

JSON.stringify(foo.__proto__.constructor) === JSON.stringify(Object.constructor) // true
© www.soinside.com 2019 - 2024. All rights reserved.