js中直接输出一个object对象显示的是[object Object]是什么意思?

JavaScript015

js中直接输出一个object对象显示的是[object Object]是什么意思?,第1张

第一个object代表用户自定义的对象的属性。

第二个object代表用户自定义的对象的方法。

知识延展:

Java把现实中的任何事物都当做一个对象(Object), Java是面向对象的,就是Object Orentied 简称OO 。此处的Object在Java中被定义为一个顶级父类,它是任何类父类,我们可以显示的继承它,也可以隐式继承,如以下实例:

public class Dog extends Object{}与public class Dog{}

完全等价。那么Object有什么样的作用?为什么每个类要去继承Object呢?首先来看一下Object中包含的方法。

1.       equals(Object obj)

2.       finalize()

3.       getClass

4.       hashCode()

5.       notify

6.       notifyAll()

7.       wait()

8.       Clone()

9.       toString()

object的prototype链中都没有实现自己的toString()的话,

把object转换为String时就会调用Object.prototype.toString,

输出的格式是[object

对象的类型]

例如Object.prototype.toString.call(123)返回"[object

Number]",

Object.prototype.toString.call('str')返回"[object

String]".

使用Object.prototype.toString.call(obj)的方式判断对象类型比用typeof要"准确",

因为typeof

[]会返回"object"而Object.prototype.toString.call([])会返回"[object

Array]"

如果想在调试时查看object里的内容,

可以用console.log(obj)来输出.

在chrome之类的现代浏览器里按下F12打开console可以看到整个obj的结构

object的prototype链中都没有实现自己的toString()的话, 把object转换为String时就会调用ObjectprototypetoString, 输出的格式是[object 对象的类型] 例如ObjectprototypetoStringcall(123)返回"[object Number]", ObjectprototypetoStrijs中直接输出一个object对象显示的是[object Objec