例如,有一个对象颜色。
colors = {
white: '#fff',
whiteF: (opacity=1) => `rgba(255,255,255,${opacity})`
}
是否有更好的方法来连接它们:如果我调用colors.white
,它将调用十六进制;如果我调用colors.white(.3)
,它将获得rgba。
答案 0 :(得分:0)
在函数内部设置条件应该可以解决问题(使用默认值)
const colors = {
white: (opacity=1) => {
if(opacity === 1){
return '#fff'
}else{
return`rgba(255,255,255,${opacity})`
}
}
}
> colors.white()
'#fff'
> colors.white(.3)
'rgba(255,255,255,0.3)'
答案 1 :(得分:-2)
您可以使用函数,该函数根据传递给它的参数作为用户属性或方法的委托者,如下所示:
colors = {
white: '#fff',
whiteF: (opacity=1) => `rgba(255,255,255,${opacity})` ,
getColor:function(opacity){
if(opacity)
return this.whiteF(opacity);
else {
return this.white;
}
}
}
console.log(colors.getColor());
console.log(colors.getColor(0.3));
使用此方法,您的方法调用将返回属性或函数调用。