首页 / JAVASCRIPT / javascript – Object.prototype.toString.call(arrayObj)和arrayObj.toString()之间的区别[复制]
javascript – Object.prototype.toString.call(arrayObj)和arrayObj.toString()之间的区别[复制]
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – Object.prototype.toString.call(arrayObj)和arrayObj.toString()之间的区别[复制],小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1140字,纯文字阅读大概需要2分钟。
内容图文
参见英文答案 > Why “foo”.toString() is not the same as toString.call(“foo”)? 3个
我已经阅读了一些材料,并且在语法方面没有完全掌握这个概念,如下所示:
var arrObj = [1,2,3];
Object.prototype.toString.call(arrObj); //Gives "[object Array]"
arrObj.toString(); // Gives "1,2,3"
2号线和3号线有何不同?据我所知,两者都调用toString方法,当前对象设置为’arrObj’.
解决方法:
由于toString是在Object.prototype中定义的,无论谁继承Object,默认情况下都会获取toString方法.
但是,Array对象覆盖默认的toString方法,以将数组元素打印为逗号分隔的字符串.
Object.prototype.toString不知道它实际处理的是什么类型的Object.因此,它有意保持通用,并始终打印对象的实际类型.这就是为什么
console.log(Object.prototype.toString.call(arrObj));
版画
[object Array]
这是传递的对象的类型.但是,当你执行arrObj.toString时,你试图以String形式表示数组,因此在Array对象中覆盖toString以将数组元素打印为逗号分隔的字符串.
这就是为什么两个电话都不同的原因.
但是在其他对象的情况下,toString不会被覆盖,因此它们将使用Object.prototype.toString中的toString.例如,
var obj = {
1: 2
};
console.log(obj.toString());
// [object Object]
阅读MDN的Overriding the default toString method示例
内容总结
以上是互联网集市为您收集整理的javascript – Object.prototype.toString.call(arrayObj)和arrayObj.toString()之间的区别[复制]全部内容,希望文章能够帮你解决javascript – Object.prototype.toString.call(arrayObj)和arrayObj.toString()之间的区别[复制]所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。