gpt4 book ai didi

javascript - Object.toString 和 Object.prototype.toString 的区别

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

我们可以使用 Object.prototype.toString.call(foo) 来检测对象类(foo 的类型),效果很好。

但是为什么 Object.toString.call({}) 抛出 TypeError: Function.prototype.toString is not generic

Object.toString 不是继承自 Object.prototype 吗?

最佳答案

Doesn't Object.toString inherit from Object.prototype

没有。内置 Object constructor 是一个 Function(像所有本地构造器一样),所以它继承自 Function.prototype(即它的私有(private) [[Prototype]] 属性引用 Function.prototype) 在它自己的 prototype 属性之前。

其原型(prototype)链为:

Object[[Prototype]] -> Function.prototype -> Object.prototype -> null

所以 Function.prototype.toString 掩盖了 Object.prototype.toString

一些琐事:请注意,虽然 Function.prototype 是一个函数,但它不是从自身继承,而是从 Object.prototype 继承。

关于javascript - Object.toString 和 Object.prototype.toString 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26333923/

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