【发布时间】:2013-11-19 22:11:37
【问题描述】:
我正在构建这样的状态指示器:
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 来发挥其最大潜力,并且使代码过于复杂。
想一想,我想这可能已经在其他地方问过,但我还没有找到。
【问题讨论】:
-
这个问题似乎跑题了,因为它属于Code Review。
-
我并不是要审查这个特殊的 sn-p。我正在尝试了解如何使用可选参数更好地构造函数。
-
我认为 $.extend 非常适合您描述的情况,即您有许多要传递给构造函数的可选参数。可能值得更新您的示例,使其更接近您的描述。
标签: javascript jquery css oop extend