Я строю индикатор состояния, как это:
G = { status : function(type, msg) {
var opts = {
'plain': ['#ccc', '#000'],
'alert': ['#900', '#fff']
}
var $el = $('<div id="status"></div>')
.css({
'background': opts[type][0],
'color': opts[type][1]
})
.html(msg)
.appendTo('body');
return $el;
}}
Я называю это так:
G.status('plain','hello'); //makes a black text on grey background message
G.status('alert','ouch'); //makes a white text on red background message
Вопрос: Вместо CSS я мог бы иметь более сложные параметры, как объект различных вариантов, некоторые из которых могут быть необязательными. есть ли более элегантный способ сделать это? У меня такое ощущение, что я действительно не использую javascript и jquery, чтобы это было наилучшим потенциалом и делало код слишком сложным.
Подумайте об этом, я думаю, это, возможно, было задано в другом месте, но я еще не нашел его.
Этот вопрос, как представляется, не по теме, потому что она принадлежит на [codereview.se]. – Doorknob
Я не пытаюсь проверить этот фрагмент. Я пытаюсь понять, как лучше структурировать функции с дополнительными параметрами. – tim
Я думаю, что $ .extend идеально подходит для ситуации, которую вы описываете, где у вас есть несколько необязательных параметров, которые вы хотите передать в конструктор. Возможно, стоит обновить ваш пример, чтобы он был ближе к описанию. –