Object.prototype.toString 和 Object.toString 有什么区别

今天在判断参数类型的时候发现
Object.prototype.toString.call(param)可以,
Object.toString.call(param)不可以。
报错信息为
Function.prototype.toString requires that 'this' be a Function。
但在控制台输出两个函数看起来应该是一样的。请问这是为什么?
clipboard.png

阅读 5k
1 个回答

Object构造函数本身没有toString方法。
依照原型链关系,Object构造函数的上游原型链是Function.prototype
所以,你调用Object.toString.call(param)本质上是调用Function.prototype.toString.call(param),这里需要的参数类型是函数,你传了对象,所以会报错。

推荐问题
宣传栏