Javascript 如何通过hashmap项进行迭代

Javascript 如何通过hashmap项进行迭代,javascript,hash,Javascript,Hash,在中,我看到了使用“for”循环遍历散列集合元素的建议。我实现了这一点,但代码如下: function MyClass(objs) { var _objs = objs; this.showNames = function () { var s = "Names: "; for (var obj in _objs) { s += obj.getName();

在中,我看到了使用“for”循环遍历散列集合元素的建议。我实现了这一点,但代码如下:

    function MyClass(objs)
    {
        var _objs = objs;

        this.showNames = function () {
            var s = "Names: ";
            for (var obj in _objs) {
                s += obj.getName();
            }
            console.log(s);
        };
    }

    function MyObj(name)
    {
        var _name = name;

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

    var mc = new MyClass({ 'M': new MyObj("morning"), 'D': new MyObj("Day") });
    mc.showNames();
给出错误:

未捕获类型错误:obj.getName不是函数

我做错了什么


谢谢

obj
是键名,而不是值

var s = "Names: ";
for (var obj in _objs) {
    s += _objs[obj].getName();
}
console.log(s);

强烈建议您养成在循环中使用
hasOwnProperty
检查for…的习惯,或者使用
Object.keys(myObject.map
为您执行此操作。