无法从javascript类中获取价值

时间:2013-11-22 08:13:02

标签: javascript knockout.js

        $(document).ready(function() {
    function Group(label, children) {
                        this.label = ko.observable(label);
                        this.children = ko.observableArray(children);
                    }

         function getGroups() {
                        var grps = [
                            [new Group("Group 1", [])],
                            [new Group("Group 2", [])]
                        ];
                        for (var a in grps) {
                            alert(a.toString()); // works, alerts index
                            alert(a.label()); // doesn't works. should give Group label
                        }
                        return grps;
                    }
getgroups();
    });

当我尝试调用getGroups()函数时,警报无法正常工作。我不知道这似乎是什么问题。

1 个答案:

答案 0 :(得分:1)

请使用

alert((grps[a])[0].label)

原因:

  • for in遍历属性键。在你的例子中所有索引 of grps array。
  • 使用grps [a]
  • 到达存储在grps数组中的对象

如何宣布它:

 var grps = [
                new Group("Group 1", []),
                new Group("Group 2", [])
            ];

然后使用

alert(grps[a].label)

更具可读性