Установить самоссылающиеся значения по умолчанию в объекте JSON (плагин jQuery)
Поэтому я пытаюсь написать плагин jQuery, и у меня есть три значения, для которых я хотел бы установить значения по умолчанию, для одного это простое числовое значение, другие могут быть установлены, если пользователь хочет, но если они не устанавливают их, они должны иметь значение по умолчанию того, что установлено первым.
Вот более длинная версия того, что я хочу
config.duration = 350;
config.closeDuration = closeDuration OR duration;
config.openDuration = openDuration OR duration;
В основном, если они не установлены по умолчанию обратно на значение длительности. Даже если значение было установлено пользователем. (например, продолжительность = 500)
Мне просто интересно, есть ли способ рационализировать это?
jQuery.fn.lighthouse = function(settings) {
var config = {
containerSelector: 'a',
childSelector: 'span',
closeSelector: '.close',
duration: 350,
openDuration: config.duration,
closeDuration: config.duration,
secondaryDuration: 100,
background: 'rgb(230, 230, 230)',
backgroundOpacity: '0.7'
};
if (settings){
config = $.extend(config, settings);
}
}
1 ответ
Установив необязательные значения в null, можно затем использовать встроенный оператор if для определения значения параметра. Вот комбинация ответов Карла-Андре Ганьона и Шарлифля:
jQuery.fn.lighthouse = function(settings) {
var config = {
containerSelector: 'a',
childSelector: 'span',
closeSelector: '.close',
duration: 350,
openDuration: null,
closeDuration: null,
secondaryDuration: 100,
background: 'rgb(230, 230, 230)',
backgroundOpacity: '0.7'
};
if (settings){
config = $.extend(config, settings);
}
config.openDuration = config.openDuration || config.duration;
config.closeDuration = config.closeDuration || config.duration;
}