jQuery объединить (сократить) опции плагина по умолчанию, что лучше? - PullRequest
0 голосов
/ 09 июня 2011

Привет, я создаю плагин, который, к сожалению, имеет 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);

если передать как Array или Object, у нас возникнет проблема: если мы установим другие параметры, отличные от default, и забудем второй аргумент elemColor .

elemColor:['green'],

тогда плагин jquery не может прочитать второе значение по умолчанию (красный) .

Что лучше (производительность, меньший размер файла, e.t.c)?

Есть ли другой способ ???

Ответы [ 2 ]

1 голос
/ 09 июня 2011

Нет сомнений в том, что объектами легче управлять, и они не будут стоить вам значительной производительности в долгосрочной перспективе. Если у вас действительно есть много последовательных опций (color1, color2, color3 и т. Д.), Может иметь смысл использовать массив в качестве значения объекта. Просто убедитесь, что организовали и прокомментировали хорошо. Что-то вроде:

{colors: [
          '#fff', // element 1
          '#000', // 2
          '#ccc', // 3
          ...
         ]
}
0 голосов
/ 09 июня 2011

Я бы определенно пошел с массивом с точки зрения людей, использующих этот плагин. Это кажется самым логичным способом его использования. Тогда вы можете просто разобраться с заявленной вами проблемой. В вашей инициализации вы можете просто проверить длину переданного массива и, если он слишком мал, справиться с этим; заполнить недостающие теми из значений по умолчанию или что-то.

...