您好我正在构建一个插件,不幸的是有146个选项......
合并(缩减)选项的最佳方式是什么。
抱歉我的英语很差。
示例:
让我们说我们想要将不同的颜色应用于两个不同的元素。
普通默认选项:
elemColor1:'black',
elemColor2:'red',
并像这样使用它们:
elem1.css('color',options.elemColor1);
elem1.css('color',options.elemColor2);
还是数组?
elemColor:['black','red'],
并像这样使用它们:
elem1.css('color',options.elemColor[0]);
elem2.css('color',options.elemColor[1]);
还是作为对象?
elemColor:{color1:'black',color2:'red'},
并像这样使用它们:
elem1.css('color',options.elemColor.color1);
elem2.css('color',options.elemColor.color2);
如果作为数组或对象传递,我们遇到的问题是,如果我们设置其他参数而不是默认值,我们会忘记elemColor的第二个参数。
elemColor:['green'],
然后jquery插件无法读取默认的第二个值(红色)。
哪个更好(性能,文件小,e.t.c)?
还有其他方法???
答案 0 :(得分:1)
毫无疑问,对象更易于管理,从长远来看,不会让您失去任何重要的性能。如果你真的有很多连续的选项(color1,color2,color3等),那么使用数组作为对象值可能是有意义的。一定要好好组织和评论。类似的东西:
{colors: [
'#fff', // element 1
'#000', // 2
'#ccc', // 3
...
]
}
答案 1 :(得分:0)
从使用此插件的人的角度来看,我肯定会使用该数组。这似乎是使用它的最合理的方式。然后你可以处理自己陈述的问题。在您的init中,您可以只检查传递的数组的长度,如果它太小,请处理它;用默认值或其他东西填充缺失的那些。