根據現有對象創建新JavaScript對象並將其擴展爲新屬性的最佳做法是什麼?根據現有對象有效創建新的JavaScript對象
下面應該可以工作,但是,我希望有一個更有效的解決方案。
<div class="chart" data-type="bar" data-title="My Bar Chart 1" data-foo="Hello"></div>
<div class="chart" data-type="pie" data-title="My Bar Pie" data-foo="Good Morning"></div>
<div class="chart" data-type="bar" data-title="My Bar Chart 2" data-foo="Good Day"></div>
<div class="chart" data-type="bar" data-title="My Bar Chart 3" data-foo="Good Evening"></div>
$('.charts').each(function(){
$(this).highcharts($.extend({}, {
bar: {/* default settings for a bar chart */ },
pie: {/* default settings for a pie chart */ },
line:{/* default settings for a line chart */ }
}[$(this).data('type')], {
title: {text: $(this).data('title')},
somethingElse: {foo: $(this).data('bar')}
// ...
}));
});
@ 4castle Where syntax errors?我試圖根據HTML中包含的數據創建不同的圖表。 – user1032531
我想我現在想通了。縮進讓我失望。我看到的唯一改進是第一個'{}'是不必要的。 – 4castle
@ 4castle是的,使用單獨的變量會使其更具可讀性。我們質疑我的方法的部分是我經常使用某種類型的地方,例如條形圖。讓我覺得我應該重新思考我的方法。 – user1032531