【发布时间】:2011-03-23 20:53:02
【问题描述】:
我在这里不知所措。我创建了这个类,它接受对象形式的参数:
new Widget('id_of_element', { option1: 'foo', option2: 'bar' });
但是,第二个参数不被视为散列,而是作为对象,因此如果未设置,我无法应用默认设置:
initialize: function (element, options) {
this.options = $H({ option1: 'something', option2: 'else', option3: 'hello', option4: 100 }).update(options);
}
我需要将参数“options”中的值转换为哈希,这样我就可以使用 update() 函数。我在 Prototype 框架中找不到将对象转换为 Hash 的任何内容。
奇怪的是,在 this.options.inspect() 上,所有正确的值都显示出来了,但是当我调用它时:
alert(this.options.option1);
// or
alert(this.options['option1']);
...它们以未定义的形式返回。为什么 Hash#inspect 方法会找到这些值,但仍然未定义?我是否缺少对某种类型的实质性理解?
【问题讨论】:
标签: javascript object hash prototypejs