【问题标题】:jQuery merge (cut down) default plugin options, which is better?jQuery合并(削减)默认插件选项,哪个更好?
【发布时间】:2011-09-11 04:41:22
【问题描述】:

您好,我正在构建一个插件,不幸的是它有 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 插件无法读取默认的第二个值(红色)

哪个更好(性能、较小的文件大小等)?

还有其他办法吗???

【问题讨论】:

    标签: jquery arrays object merge options


    【解决方案1】:

    从使用这个插件的人的角度来看,我肯定会选择数组。这似乎是最合乎逻辑的使用方式。然后,您可以处理自己提出的问题。在您的初始化中,您可以检查传递数组的长度,如果它太小,请处理它;用默认的或其他东西填充缺失的。

    【讨论】:

      【解决方案2】:

      毫无疑问,对象更易于管理,并且从长远来看不会影响您的任何显着性能。如果您确实有很多连续的选项(color1、color2、color3 等),那么使用数组作为对象值可能是有意义的。一定要好好组织和评论。比如:

      {colors: [
                '#fff', // element 1
                '#000', // 2
                '#ccc', // 3
                ...
               ]
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-11-26
        • 2012-05-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多