雖然考慮性能哪個模型最適合在d3.js上構建圖表?封閉類型還是構造器原型模型?d3.js圖表框架建模
我爲每個圖表類型(如條形圖,線條,面積圖)都有單獨的模塊,還有一個用於繪製圖表的常見模塊。
這裏什麼是使用封閉圖案超過原型模式
實施例共同的模塊的優點:
//閉合模型
function chart() {
var width = 720, // default width
height = 80,
scale,legends,axes; // default height
function my() {
// generate chart here, using `width` and `height`
}
my.width = function(value) {
if (!arguments.length) return width;
width = value;
return my;
};
my.height = function(value) {
if (!arguments.length) return height;
height = value;
return my;
};
return my;
}
var bar = new chart();
bar();
// Prototypr圖案:
var chart = function(){
this.width =500;
this.height = 500;
this.initialize();
}
chart.prototype.initialize = function()
{
//generate chart here
}
var bar = new chart();
兩個看起來相似。但哪一個是考慮
性能優勢,在此基礎上jsperf測試重繪
我很想看到對性能的影響是調用這兩種情況下簡單的功能是什麼。想嘗試爲它創建一個jsperf? http://jsperf.com/ –
這是有幫助的:http://mrale.ph/blog/2012/09/23/grokking-v8-closures-for-fun.html –
這裏是一個快速的性能測試:http: //jsperf.com/javascript-prototype-vs-closure-performance –