admin管理员组

文章数量:1208155

The intended output of my function is {"name": "bob", "number": 1}, but it returns [object Object]. How can I achieve the desired output?

function myfunc() {
   return {"name": "bob", "number": 1};
}
myfunc();

The intended output of my function is {"name": "bob", "number": 1}, but it returns [object Object]. How can I achieve the desired output?

function myfunc() {
   return {"name": "bob", "number": 1};
}
myfunc();
Share Improve this question asked Jan 3, 2016 at 5:54 kilojouleskilojoules 10.1k21 gold badges82 silver badges157 bronze badges 2
  • 1 How do you know what the function returns? Are you using a console? Are you alert()ing the result? – Blender Commented Jan 3, 2016 at 5:57
  • I'm using freecodecamp's coding console – kilojoules Commented Jan 3, 2016 at 6:02
Add a comment  | 

2 Answers 2

Reset to default 11

Haha this seems to be a simple misunderstanding. You are returning the object, but the toString() method for an object is [object Object] and it's being implicitly called by the freecodecamp console.

Object.prototype.toString()

var o = {}; // o is an Object
o.toString(); // returns [object Object]

You can easily verify you actually are returning an object using your own code:

function myfunc() {
   return {"name": "bob", "number": 1};
}

var myobj = myfunc();
console.log(myobj.name, myobj.number); // logs "bob 1"

If you try console.log(ob.name) it should display bob

{} in JS is a shorthand for an object. You can convert your object to string using the toString() method.

本文标签: javascript function to return object returns object ObjectStack Overflow