Есть ли способ получить функцию или или свойство в объекте Javascript - PullRequest
0 голосов
/ 17 октября 2018

в качестве примера приведен объект цвета.

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

Есть ли лучший способ соединить их следующим образом: если я вызову colors.white, это вызовет hex, а если я вызову colors.white(.3), то этополучит RGBA один.

Ответы [ 2 ]

0 голосов
/ 17 октября 2018

Установка условия внутри функции должна помочь (со значением по умолчанию)

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)'
0 голосов
/ 17 октября 2018

Вы можете использовать функцию, которая будет служить делегатором для пользовательского свойства или метода, основанного на параметре, переданном ему следующим образом:

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

При этом ваш вызов метода вернет вызов свойства или функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...