Javascript 如何一次打印对象中的所有属性/值。JS

Javascript 如何一次打印对象中的所有属性/值。JS,javascript,oop,object,Javascript,Oop,Object,那么让我们假设我有这个: function Car(make, model, year) { this.make = make; this.model = model; this.year = year; } var car1 = new Car("VW", "Bug", 2012); var car2 = new Car("Toyota", "Prius", 2004); document.write(car1.make, car1.model, car1.year); doc

那么让我们假设我有这个:

function Car(make, model, year) {
  this.make = make;
  this.model = model;
  this.year = year;
}

var car1 = new Car("VW", "Bug", 2012);
var car2 = new Car("Toyota", "Prius", 2004);

document.write(car1.make, car1.model, car1.year);
document.write(car2.make, car2.mocel, car2.year);

是否有更干净的方法写出对象的所有属性/值?谢谢!

要枚举JavaScript中对象的所有属性:

for (aProperty in yourObject) {
    // do what needed
    // in case you want just to print it:
    console.log(aProperty + "has value: " + yourObject[aProperty]);
}

但是,如果您只是想将对象打印到控制台,也许可以帮助您。

您可以使用
JSON.stringify
序列化对象并轻松记录其属性:

console.log(JSON.stringify(car1))

你可以用

for(aVariable in yourObject){
   console.log(aVariable);
}

通过这种方式,您可以查看对象的每个属性

从技术上讲,您可以使用简单的
for
循环遍历所有属性,但这意味着您也可以获得在其祖先中设置的所有属性,因此,您可以使用
Object.hasOwnProperty
验证此属性是否为自身设置,而不是继承,并打印出相关属性(或对其执行某些操作)

功能车(品牌、型号、年份){
make=make;
this.model=模型;
今年=年;
}
var bmw=新车(“大众”、“巡洋舰”,1989年);
var output=document.getElementById('output');
对于(宝马的财产)
if(宝马hasOwnProperty(物业))
output.innerHTML+=property+':'+bmw[property]+'
'

什么是“清洁剂”?你现在这样做有什么不“干净”的地方?这是为什么?如果您想调试代码,请使用浏览器的开发人员工具和控制台.log。您至少应该将其封装为document.write(car1.toString())并为您的对象实现toString()。这是我的答案的副本。是的,此代码很常见,但是我们的发布非常接近,我已经添加了一个来源,甚至Eddite希望更接近你所写的。。。。但我们的两个答案都符合这个问题