【发布时间】:2012-10-31 17:36:42
【问题描述】:
在 Douglas Crockford 的书“Javascript: The Good Parts”中,他在将值传递给新对象时提到了对象说明符。本质上,与其按特定顺序将参数传递给函数,他建议传递一个包含参数的对象,如下所示:
var myObject = someFunction({a: 1, b: 2, c: 3});
然而,没有解释的是如何在这些参数被传递之后处理它们。而不是执行以下操作来设置默认值:
function someFunction(params){
this.a = params.a || 0;
this.b = params.b || 0;
...
}
还有什么方法可以处理大量参数而又不那么冗长?
编辑:看看下面的答案,使用 for-in 循环是一个不错的选择。在为每个属性设置不同的默认值时,还有什么方法可以做到这一点?有没有办法创建一个具有各种默认值的对象并与之进行比较?
【问题讨论】:
-
您可以有一个“标准”对象,您可以在某种循环中将输入与该对象进行比较。 jQuery-plugins 通常处理这个的方式(虽然这是使用 jQuery)也可能很有趣:docs.jquery.com/Plugins/Authoring#Defaults_and_Options
-
请注意,逐个执行参数可以让您单独指定默认值(m90 建议的默认对象也允许这样做),或者在未提供某些参数时采取特殊措施。
-
m90 & nnnnnn:如果您想说明答案,我已经更新了我的问题以说明不同的默认值。
标签: javascript function object