使用循环从javascript中的对象获取函数的结果

时间:2015-08-30 08:04:02

标签: javascript json object

我有点问题。

我有这个构造函数:

function person(vName, vLastname, vID) {
    var name= vName;
    var lastname = vLastname;
    var id= vID;

    this.getName = function () {
        return name;
    }

    this.getLast = function () {
        return lastname;
    }

    this.getId = function () {
        return id;
    }

    this.getJSON = function () {
        var json = {"name": name, "last": lastname, "id": id};
        return JSON.stringify(json);
    };
}

我创建了一个对象:

var person = new person("John", "Connor", "t3000");

我希望使用如下循环来显示他的信息:

for (index in person) {
    document.getElementById("dPerson").innerHTML += "<br>"+index+" : " + person[index]+"</br>";
}

但我得到的只是:

getName : function () { return name; }

getLast : function () { return lastname; }

getId : function () { return id; }

getJSON : function () { var json = {"name": name, "last": lastname, "id": id}; return JSON.stringify(json); }

我该怎么办?我不想公开属性。

1 个答案:

答案 0 :(得分:0)

你非常接近。您唯一需要做的就是调用函数而不是获取函数定义。

像这样:

        for (index in person){
            document.getElementById("dPerson").innerHTML += "" + index + 
                " : " + person[index]() + "";
        }