为什么通过call调用Object.prototype.toString.call()和对象本身调用toStri
例如 直接用toString():
console.log(true.toString());//"true"console.log(false.toString());//"false"console.log((1).toString());//"1"var str = "test123y";console.log(str.toString());//"test123y"var arr = ["tom",12,"rose",18];console.log(arr.toString());//"tom,12,rose,18"var patten = new RegExp("\\[hbc\\]at", "gi");console.log(patten.toString());//"/\[hbc\]at/gi"用Object.prototype.toString.call():
Object.prototype.toString.call("abc");//"[object String]"Object.prototype.toString.call(123);//"[object Number]"Object.prototype.toString.call(true);//"[object Boolean]"var arr = [1,2,3];Object.prototype.toString.call(arr);//"[object Array]"为什么Object.prototype.toString.call()会返回类型 而不是像toString()一样返回对象内容的字符串型式? |
免责声明:本内容仅代表回答会员见解不代表天盟观点,请谨慎对待。
版权声明:作者保留权利,不代表天盟立场。
|
|
|
|
两个toString根本不是继承同个方法。Object 本身是个构造函数,任意一个函数自身的toString方法都是继承自Funtion构造函数,而Object原型下面的构造函数是返回对象内部的class值。 |
|
|
|
|