javascript - 关于toString()的一个小问题
巴扎黑
巴扎黑 2017-04-10 15:27:18
[JavaScript讨论组]

概述
toString() 方法返回一个代表该对象的字符串。

语法
object.toString()

当对象需要转换为字符串时,会调用它的toString()方法.。默认情况下,每个对象都会从Object上继承到toString()方法,如果这个方法没有被这个对象自身或者更接近的上层原型上的同名方法覆盖(遮蔽),则调用该对象的toString()方法时会返回"[object type]",这里的字符串type表示了一个对象类型。下面的代码演示了这一点:

var o = new Object();
o.toString(); // 返回了[object Object]

为什么var o=[]; o.toString()返回的是空,而不是【object Array】?

巴扎黑
巴扎黑

全部回复(3)
ringa_lee

The Array object overrides the toString method of Object. For Array objects, the toString method joins the array and returns one string containing each array element separated by commas. For example, the following code creates an array and uses toString to convert the array to a string.

- https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Glob...

怪我咯

很显然是因为Array.prototype里面重新定义了toString()。如果你把Array.prototype.toString覆盖掉,就可以改成你想要的效果了。

PHP中文网

Array 的原型中重新定义了 toString() 方法。如果想得到[object Array]的结果,可以像下面这样调用

Object.prototype.toString.call(o)

上面这个方法也是现在最常用的判断一个对象是不是数组的方法

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号