Вы можете использовать троичный оператор, чтобы проверить, установлен ли элемент массива инициализации, и использовать его, если он есть, или использовать значение по умолчанию, если нет. Например, предполагая, что данные инициализации передаются как объект с именем init
....
var myObject = {
init: function(opts) {
this.foo=(typeof(opts.foo)!="undefined")?opts.foo:'default value';
}
}
В качестве альтернативы, вы можете просто скопировать массив инициализации, переопределяя ранее установленные значения
var myObject = {
init: function(opts) {
this.foo='default value';
for (name in opts)
{
this[name]=opts[name];
}
}
Обратите внимание, что такая идиома, как
this.foo = opts.foo || 'some default';
Сбой, если для opts.foo задано значение, которое оценивается как ложное, например, 0