在语义上存储RGB颜色值

时间:2016-06-20 12:43:26

标签: javascript

将它们存储为数组是否更具语义性:

var niceBlue = [27, 125, 161];

或对象:

var coolGreen = {red: 74, green: 173, blue: 90};

或作为具有速记属性名称的对象:(然后,是否最好大写属性名称?)

var deepPurple = {r: 86, g: 45, b: 92};

1 个答案:

答案 0 :(得分:0)

Re:使用Color类过度杀伤......这只是几行代码,但它为您提供了更具伸缩性的解决方案

function Color(red,green,blue)
{
    this.red = red;
    this.green = green;
    this.blue = blue;
}

var red = new Color(255,0,0)
var green = new Color(0,255,0)
var blue = new Color(0,0,255);

展望未来,如果你决定添加一个alpha属性,没问题。

function Color(red,green,blue,alpha)
{
    this.red = red;
    this.green = green;
    this.blue = blue;
    this.alpha = (alpha!=undefined)? alpha: 100;

}

var red = new Color(255,0,0)
var green = new Color(0,255,0)
var blue = new Color(0,0,255);
var alpha = new Color(255,0,0,50)

所有原始对象仍然可以正常工作。您可以轻松添加toNumber()或toString()方法以进行调试。对我来说,这似乎并不过分。我总是建议不要使用匿名JSON包装器作为数据传输对象。他们很快回来咬你。 :)

结论 - 如果您在考虑语义和可读性方面遇到麻烦,那么您的代码听起来就像是为某些课程准备好了。