Я в растерянности здесь. У меня есть этот класс, который я создал, который принимает аргументы в форме объекта:
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 находит эти значения, но они все еще не определены? Я что-то упускаю из виду?