Object.prototype.toString.call('str') 这句代码是如何判断类型的

Object.prototype.toString.call(变量)

这行代码可以判断任何变量的类型,是如何做到的?内部机理?

阅读 2.6k
2 个回答

Object.prototype.toString 是内部实现(Intrinsic Object) %ObjProto_toString% ,它是属于 %ObjectPrototype%。

可以判断类型是因为 %ObjProto_toString% 的实现是这样的,里面规定了各种类型返回什么样的字符串。

所有对象都继承 %ObjectPrototype% ,一般都会重写覆盖其 toString 方法,用 call 是为了使用原型上面的方法,保证是调用 %ObjProto_toString% 。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题