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

Object.prototype.toString.call(变量)

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


jeck猫
浏览 600回答 2
2回答

米琪卡哇伊

Object.prototype.toString 是内部实现(Intrinsic Object) %ObjProto_toString% ,它是属于 %ObjectPrototype%。可以判断类型是因为 %ObjProto_toString% 的实现是这样的,里面规定了各种类型返回什么样的字符串。所有对象都继承 %ObjectPrototype% ,一般都会重写覆盖其 toString 方法,用 call 是为了使用原型上面的方法,保证是调用 %ObjProto_toString% 。

慕沐林林

参考 使用toString()检测对象类型算是内部机理,因为js中万物皆对象,因此每种类型的变量打印出来的结果不同
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript