有没有办法在Javascript对象中获取函数或属性

时间:2018-10-17 06:38:00

标签: javascript object properties

例如,有一个对象颜色。

colors = {
  white: '#fff',
  whiteF: (opacity=1) => `rgba(255,255,255,${opacity})`    
}

是否有更好的方法来连接它们:如果我调用colors.white,它将调用十六进制;如果我调用colors.white(.3),它将获得rgba。

2 个答案:

答案 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));

使用此方法,您的方法调用将返回属性或函数调用。