Javascript 如何将对象作为参数传递给函数

Javascript 如何将对象作为参数传递给函数,javascript,object,Javascript,Object,我得到了汽车所有属性的输出,即: 制作 模型 颜色“ 当我执行这个代码时。我只得到了这辆车的一项财产。i、 e仅将“make”作为输出。 我能知道我哪里出错了吗?这两个代码段有什么不同呢?这是因为在找到第一个属性名后,您会立即返回。一个函数只能返回一次 可以将属性名推入循环中的数组并返回。您可以使用Object.keys()获取属性名数组。您不需要自己编写函数来完成此操作 var car = {make: "Honda", model:"Civic", color:"Silver"}; var

我得到了汽车所有属性的输出,即: 制作 模型 颜色“

当我执行这个代码时。我只得到了这辆车的一项财产。i、 e仅将“make”作为输出。
我能知道我哪里出错了吗?这两个代码段有什么不同呢?

这是因为在找到第一个属性名后,您会立即返回
。一个函数只能返回一次


可以将属性名推入循环中的数组并返回。

您可以使用
Object.keys()
获取属性名数组。您不需要自己编写函数来完成此操作

var car = {make: "Honda", model:"Civic", color:"Silver"};

var GetObjectPropertyNames = function(obj) {

    if(obj===null)
    {
        return null;
    }

    for(var prop in obj)
    {
        return prop;
    }


}
console.log(GetObjectPropertyNames(car));

仅供参考,您的函数仅返回一个属性名称,因为您在使用
return prop
找到的第一个属性上使用了
return
,并且函数在返回后立即执行完毕


如果您想自己编写,您可以将所有属性放入一个数组中,然后在完成后返回数组(尽管
Object.keys()
已经为您完成了此操作)。

“这两个代码片段有什么不同?”-嗯,循环中的代码完全不同…@Arun-这回答了您的问题吗?
var car = {make: "Honda", model:"Civic", color:"Silver"};

var GetObjectPropertyNames = function(obj) {

    if(obj===null)
    {
        return null;
    }

    for(var prop in obj)
    {
        return prop;
    }


}
console.log(GetObjectPropertyNames(car));
var car = {make: "Honda", model:"Civic", color:"Silver"};

var props = Object.keys(car);    // ["make", "model", "color"]