1

私は再利用可能なチャートのマイク・ボストックのパターンに従っています-ゲッター/セッターによる閉鎖。しかし、どういうわけか、新しいプロパティで新しいチャート オブジェクトをインスタンス化すると、既存のチャートがこれらのプロパティで更新されます。

var chart1 = new StackedAreaChart();
d3.select('#chart1')
    .data([data])
    .call(chart1);     

// a new chart - whose properties end up in chart1!
var chart2 = new StackedAreaChart().colors(['green', 'blue']);

例を次に示します: http://jsfiddle.net/samselikoff/YZ6Ea/3/。ウィンドウのサイズを変更して、再レンダリングされた最初のグラフを確認します。スタイリッシュだが予想外の緑の色合いです。

私はこれに困惑しています。(1) セッターが実際の「コンストラクター」を変更している、(2)chart1思ったように別のインスタンスではなく、どういうわけかこのコンストラクターへの参照であると思われます。

this.margin = ...の代わりに使おうと思っていたのvar margin =ですが、これが推奨パターンなので、最初にここに投稿したいと思いました。私は何が欠けていますか?

4

1 に答える 1