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設定,如下:
var alloptions = new Object();
var option_thumb = {
            chart: {
                type: 'line'
            },
            title: {
                text: ''  
            },
            tooltip: {
                enabled: false,
                animation: false
            },
            plotOptions: {
                series: {
                     lineWidth: 2,
                     marker: {
                         enabled: false,
                         states: {
                             hover: {
                                 enabled: false
                             }
                         }
                     }
                }
            },
            xAxis:{
                labels:{
                    enabled : false
                } 
            },
            ......略
};
alloptions[0] = $.extend(true, {}, option_thumb);
alloptions[1] = $.extend(true, {}, option_thumb);

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

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

以此達到new object!

留言