鍍金池/ 問(wèn)答/HTML5  HTML/ 原型鏈 為什么不相等

原型鏈 為什么不相等

var arr = [];
arr.toString == Object.prototype.toString //false

回答
編輯回答
笑忘初

arr.toString===Array.prototype.toString
true

因?yàn)檫@個(gè)是數(shù)組啊。。。你可以認(rèn)為數(shù)組繼承了對(duì)象的原型鏈但是對(duì)某些函數(shù)進(jìn)行了改寫(xiě),那么自然就不能相對(duì)了。同理,你對(duì)一個(gè)對(duì)象tostring跟一個(gè)數(shù)組tostring能一樣嗎

2017年1月29日 22:45
編輯回答
赱丅呿

Array 重寫(xiě)了toString
[].toString === Array.prototype.toString

2017年9月1日 12:17
編輯回答
拼未來(lái)

雖然 Array 繼承 ObjecttoString方法了,但是 一般都是結(jié)合本身的特性進(jìn)行重寫(xiě)的

var arr = [];
var reg = /sdsd/;
Object.prototype.toString.call(arr); //"[object Array]"
Object.prototype.toString.call("sss");//"[object String]"
Object.prototype.toString.call("reg");//"[object RegExp]"
2017年12月18日 18:51
編輯回答
祉小皓
[].constructor=? Array() { [native code] }
{}.constructor=? Object() { [native code] }

構(gòu)造器不同,原型不同,方法也不同
2017年9月14日 22:43