哈希显示为在控制台中填充,但大小为0

时间:2013-02-15 13:41:49

标签: javascript prototypejs

是否有人能够解释为什么我无法正确确定原型哈希的大小。

以下打印出klass {_object: Object, test: "foo", each: function, eachSlice: function, all: function…}证明“测试”对肯定会被添加。但大小打印为0.

this.state = new Hash();

this.state["test"] = "foo";

console.log(this.state.size());
console.log(this.state);

2 个答案:

答案 0 :(得分:4)

这是因为您只是向Hash实例添加了一个普通属性。您需要使用.set()方法实际向哈希添加元素:

this.state.set("test", "foo");

这是working example

答案 1 :(得分:0)

您也可以使用其中的数据初始化哈希值。

var state = $H({'test':'foo','moretest':'bar'});

console.log(state.size()); // returns 2
console.log(state.get('moretest')); returns bar