为什么在[object,Object]中,第一个对象中有一个小o是secound对象中的一个大O.

时间:2017-05-09 17:09:42

标签: javascript

如果我想获得该对象的o / p,则在JavaScript中创建对象时,它会显示[object,Object]。我们说

var a = {
  fname: "Avijit",
  lname: "Paul"
}

document.write(a);

o / p:[object,Object] //为什么这里有一个小对象和另一个大对象?

3 个答案:

答案 0 :(得分:0)

第一个是对象本身的引用,第二个是它的类型。

要从对象中获取数据,您必须访问其属性:



var a = {
  fname: "Avijit",
  lname: "Paul"
}

console.log(a.fname);
console.log(a.lname);




此外,document.write()虽然合法用于非常有限的用例(通常在动态创建新文档时),但如果使用不当,实际上可以覆盖当前文档。要输出用于测试目的的数据,请在打开开发人员工具(F12)的控制台窗口时使用console.log()

答案 1 :(得分:0)

我想你想要访问该对象的值。为此你必须访问它的属性,

document.write(a.fname);

答案 2 :(得分:0)

document.write()方法将字符串内容写入文档。

当您将对象传递给它时,在您的情况下a如下所示:

var a = {
  fname: "Avijit",
  lname: "Paul"
}

Javascript尽力将对象转换为字符串。 为此,调用一个名为toString()的方法。这在Object中定义。准确地说是Object.prototype。 由于您传递的对象是一个对象,因此它会打印[object Object]。

请注意,在Javascript中,有许多类型的对象。函数是对象,数组是对象。因此,为了区分一个对象,它们显示为[对象函数],[对象数组]等。

请参阅以下代码:



var obj = {};
var arr = [1,2,3];
var func = function () {
  //console.log('A Func');
}
//func();
var objObj = Object.prototype.toString.call(obj);
console.log(objObj);//prints [object Object]
var arrObj = Object.prototype.toString.call(arr);
console.log(arrObj);//prints [object Array]
var funcObj = Object.prototype.toString.call(func);
console.log(funcObj);//prints [object Function]