2011-06-08 82 views
0

嗨,我正在構建一個插件,不幸有146個選項...jQuery合併(減少)默認插件選項,哪個更好?

什麼是合併(減少)選項的最佳方式。

對不起,我英文很差。

例子:

假設我們想不同的顏色適用於兩種不同的元素

正常的默認選項:

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

是否有其他方式?

回答

1

毫無疑問,對象更容易管理,從長遠來看不會讓您有任何顯着的表現。如果你真的有很多連續選項(color1,color2,color3等),那麼使用一個數組作爲對象值可能是有意義的。只要確保組織和評論好。就像:

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

我肯定會從使用這個插件的人的角度來看數組。這似乎是使用它的最合理的方式。那麼你可以只處理自己說的問題。在你的init中,你可以檢查傳遞數組的長度,如果它太小,處理這個;用缺省的或其他的填充缺失的部分。