开发javascript图表库,哪种模型最好是原型还是封闭? 在开发包含更多内容和动画的图表库时,是否需要封装?
就像这里一样,
function main(){
var w = 100;
function chart(){
//main chart rendering
}
chart.width = function(){}
chart.regenerate = function(){}
chart.sort = function(){}
chart.updatelegend = function(){}
chart.startanimation = function(){}
return chart;
}
这是一个有效的案例来使用这样的javascript闭包吗?
答案 0 :(得分:0)
我对您的域名一无所知,但这是您可以做的一个示例:
//define the 'charts' module
var charts = (function () {
//Chart constructor
function Chart() {
}
Chart.prototype = {
constructor: Chart,
//public Chart API
width: function () { /*...*/ }
};
//public module members
return {
Chart: Chart
};
})();
//using it
var chart = new charts.Chart();
如果您需要特权成员,您可以始终依赖闭包,但我不推荐它,因为它的内存效率较低(实例不共享功能)。
E.g。
function Chart(width) {
var _width = width; //private var
//priviledged function
this.width = function () { return _width ; };
}
答案 1 :(得分:0)
在下面的代码中,我没有使用您使用的Prototype。两个代码之间是否有任何区别。任何方式都会返回相同的Object.Is处理对象有任何区别
var charts = (function () {
//Chart constructor
function Chart() {
console.log(this.width())
}
Chart.constructor = function() {
}
Chart.width = function(){
}
};
//public module members
return Chart
})();
//using it
var chart = new charts.Chart();