代码之家  ›  专栏  ›  技术社区  ›  mwieczorek

在原型中将对象转换为哈希

  •  0
  • mwieczorek  · 技术社区  · 14 年前

    我在这里不知所措。我创建了一个类,它采用对象形式的参数:

    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()函数。我在原型框架中找不到任何可以将对象转换为哈希的东西。

    奇怪的是,在这个.options.inspect()上,所有正确的值都会显示出来,但是当我调用它时:

    alert(this.options.option1);
    // or 
    alert(this.options['option1']);
    

    1 回复  |  直到 12 年前
        1
  •  1
  •   Tim Down    14 年前

    在JavaScript中没有强制转换。如果你想要一个 Hash 然后你需要创建一个,你已经在做了。

    从Prototype文档中,似乎需要使用 搞砸 的方法:

    alert(this.options.get("option1"));