javascript - 使用 js toString() 方法转换对象会给出奇怪的结果吗?

标签 javascript oop

下面的代码显示了使用 toString() 进行少量数据类型转换的结果方法。 所有其他数据类型都可以使用 toString() 转换为字符串方法,但是当尝试使用 toString() 将对象转换为字符串时方法给出了奇怪的结果,它是“[object Object]”

var b =1
b.toString();// produce "1"


var x=function(){var y=1;};
x.toString();// produce "function (){var y=1;}"


var z = [1,2];
z.toString();// produce "1,2"

var a = new Date;
//a = Date {Thu Dec 25 2014 22:44:32 GMT+0530 (Sri Lanka Standard Time)}
a.toString();// produce "Thu Dec 25 2014 22:44:32 GMT+0530 (Sri Lanka Standard Time)"



var obj = { name: 'John' }
obj.toString();// produce "[object Object]"

我想知道什么时候我们尝试使用 toString() 将对象转换为字符串方法为什么会给出奇怪的结果。

为什么不给出“[object Object]”而不是 toString()方法返回此值“{ name: 'John' }”

最佳答案

在 Javascript 中,所有对象都继承自 Object。对于自定义对象,如果您没有定义 toString() 方法,它将从其父类继承它。因此 obj.toString() 打印“[object Object]”,因为它是 Object 类型的对象(原始类型)。

关于javascript - 使用 js toString() 方法转换对象会给出奇怪的结果吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27649368/

相关文章:

javascript - 如何计算位置与距离不同

Python 多继承,__init__

python - __init__() 内部和外部变量之间的差异(类和实例属性)

javascript - mongodb nodejs - 转换循环结构

javascript - 如何修改 Angular 服务中的响应(获取)函数?

c# - 简化 C# 中的组合接口(interface)

c++ - 你不应该从 std::vector 继承

java - 线程和任务是什么关系?

javascript - 如何编码cookie数据

javascript - 谷歌数据存储查询中的多项选择抛出 ApiError : Precondition Failed error in node