在考虑性能时,哪种模型最适合使用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();
//原型模式:
var chart = function(){
this.width =500;
this.height = 500;
this.initialize();
}
chart.prototype.initialize = function()
{
//generate chart here
}
var bar = new chart();
两种看起来相似,但在考虑性能、重绘方面哪个更有优势呢?