鍍金池/ 問答/Android  HTML/ Object.prototype.toString.call('str') 這句

Object.prototype.toString.call('str') 這句代碼是如何判斷類型的

Object.prototype.toString.call(變量)

這行代碼可以判斷任何變量的類型,是如何做到的??jī)?nèi)部機(jī)理?

回答
編輯回答
櫻花霓

Object.prototype.toString 是內(nèi)部實(shí)現(xiàn)(Intrinsic Object) %ObjProto_toString% ,它是屬于 %ObjectPrototype%。

可以判斷類型是因?yàn)?%ObjProto_toString% 的實(shí)現(xiàn)是這樣的,里面規(guī)定了各種類型返回什么樣的字符串。

所有對(duì)象都繼承 %ObjectPrototype% ,一般都會(huì)重寫覆蓋其 toString 方法,用 call 是為了使用原型上面的方法,保證是調(diào)用 %ObjProto_toString% 。

2017年4月17日 04:59
編輯回答
逗婦惱

參考 使用toString()檢測(cè)對(duì)象類型

算是內(nèi)部機(jī)理,因?yàn)閖s中萬物皆對(duì)象,因此每種類型的變量打印出來的結(jié)果不同

2017年4月30日 04:12