Javascript 为什么这个函数在JS中返回undefined.property?

Javascript 为什么这个函数在JS中返回undefined.property?,javascript,object,undefined,Javascript,Object,Undefined,我正在阅读MDN JavaScript指南,并尝试与您合作 我修改了原始代码以返回控制台语句,但当我将其放入JSBin.com时,控制台返回: "undefined.make = Ford<br>" "undefined.make = Ford<br>undefined.model = Mustang<br>" "undefined.make = Ford<br>undefined.model = Mustang<br><hr&g

我正在阅读MDN JavaScript指南,并尝试与您合作

我修改了原始代码以返回控制台语句,但当我将其放入JSBin.com时,控制台返回:

"undefined.make = Ford<br>"
"undefined.make = Ford<br>undefined.model = Mustang<br>"
"undefined.make = Ford<br>undefined.model = Mustang<br><hr>"
为什么是未定义的? 谢谢你的函数dump_propsobj,obj_name需要第二个obj_name参数。但您调用它只是传递一个参数:

dump_props(car);
因此,第二个将是未定义的。我想这就是你想要的:

var car = { make: "Ford", model: "Mustang" };

function dump_props(obj, obj_name) {
   var result = "";
   obj_name = obj_name || obj.constructor.name; // Get the object name
   for (var i in obj) {
      console.log(result += obj_name + "." + i + " = " + obj[i] + "<br>");
   }
   result += "<hr>";
   console.log(result);
}

dump_props(car);
dump_props(car,"Car"); // Both ways will work

您没有将参数传递到函数中 试一试

dump_props函数中的参数太多

var car = { make: "Ford", model: "Mustang" };

function dump_props(obj) {
   var result = "";
   for (var key in obj) {
      console.log(result += key + " = " + obj[key] + "<br>");
   }
   result += "<hr>";
   console.log(result);
}

dump_props(car);

基本上你的dump_props函数有两个参数,你只传递了一个,所以第二个obj_名称是未定义的,因此所有未定义的输出都在其中,你想要的输出是什么?这不会打印类的名称,我认为这不是预期的结果,但是很接近
dump_props(car,"carclass");
var car = { make: "Ford", model: "Mustang" };

function dump_props(obj) {
   var result = "";
   for (var key in obj) {
      console.log(result += key + " = " + obj[key] + "<br>");
   }
   result += "<hr>";
   console.log(result);
}

dump_props(car);