What does [object Object] mean?

后端 未结 10 2156
醉酒成梦
醉酒成梦 2020-11-22 03:22

I am trying to alert a returned value from a function and I get this in the alert:

[object Object]  

Here is the JavaScript code:



        
10条回答
  •  刺人心
    刺人心 (楼主)
    2020-11-22 04:14

    As others have noted, this is the default serialisation of an object. But why is it [object Object] and not just [object]?

    That is because there are different types of objects in Javascript!

    • Function objects:
      stringify(function (){}) -> [object Function]
    • Array objects:
      stringify([]) -> [object Array]
    • RegExp objects
      stringify(/x/) -> [object RegExp]
    • Date objects
      stringify(new Date) -> [object Date]
    • … several more …
    • and Object objects!
      stringify({}) -> [object Object]

    That's because the constructor function is called Object (with a capital "O"), and the term "object" (with small "o") refers to the structural nature of the thingy.

    Usually, when you're talking about "objects" in Javascript, you actually mean "Object objects", and not the other types.

    where stringify should look like this:

    function stringify (x) {
        console.log(Object.prototype.toString.call(x));
    }
    

提交回复
热议问题