[英]What is the recommended way to have an optional parameter for an AngularJS function?
[英]What's a concise way to have defaults for the fields of an optional parameter in CoffeeScript?
我有一个带有此签名的函数:
createUiLabel = (text, fontProperties) ->
我希望fontProperties是可选的,如果未定义,则默认为如下所示:
{
size: defaultSize
family: defaultFamily
color: defaultColor
}
我知道我可以通过这样的破坏来实现:
createUiLabel = (text, fontProperties = {
size: defaultSize
family: defaultFamily
color: defaultColor
}) ->
但是能够这样调用该函数确实很方便:
createUiLabel("foo", {size: 14})
并且让color
和family
仍然使用默认值。 但是似乎传入该对象将覆盖其他属性,因此color
和family
变得不确定。 当您只想更改一个属性时,从外部定义这些其他属性很烦人。 如何轻松实现该函数,以便前面的调用将为我提供color
和family
的默认值?
这似乎与最简洁的方法类似,即仅当CoffeeScript中存在变量时才从变量分配值? 区别在于,我尝试从中提取可选字段,这之间存在一个可选对象。
我将使用在空默认值上的存在运算符进行显式复合分配:
createUiLabel = (text, fontProperties = {}) ->
fontProperties.size ?= defaultSize
fontProperties.color ?= defaultColor
fontProperties.family ?= defaultFamily
…
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.