jQuery - jquery.extend copy object

相信應該蠻多人都有用過highcharts,且網路上及官網也有很多教學資源,因此在這邊

不是說要怎麼配置它的option來產生chart,而是當我們一次要呈現多個縮小chart時,在option

的設定上,不太可能再宣告並且重新定義一次,因為各個圖頂多是x, y的資料不同罷了。
 
縮小圖如下:



這邊要探討的是如何產生各個chart option其有獨立的option object,不讓大家都一起共用,

因為會出現其他圖的option設定被更動,所以需要進行object deep copy來幫各個chart產生

獨立的object。因此在這邊我們就要利用jquery.extend來幫我們implement deep copy object,有

一個option設定,如下:
  1. var alloptions = new Object();
  2. var option_thumb = {
  3. chart: {
  4. type: 'line'
  5. },
  6. title: {
  7. text: ''
  8. },
  9. tooltip: {
  10. enabled: false,
  11. animation: false
  12. },
  13. plotOptions: {
  14. series: {
  15. lineWidth: 2,
  16. marker: {
  17. enabled: false,
  18. states: {
  19. hover: {
  20. enabled: false
  21. }
  22. }
  23. }
  24. }
  25. },
  26. xAxis:{
  27. labels:{
  28. enabled : false
  29. }
  30. },
  31. ......略
  32. };
  33. alloptions[0] = $.extend(true, {}, option_thumb);
  34. alloptions[1] = $.extend(true, {}, option_thumb);

在此我宣告了一個alloptions來記錄所有縮小圖option object,其extend的參數1設為true,表示

做deep copy,而{},就是一個空的target,並且與參數3後的option_thumb merge(可設多個),

以此達到new object!

留言