javascript:广泛使用'这个'在可重复使用的d3js图表中

时间:2014-03-29 22:33:40

标签: javascript d3.js charts this

在可重复使用的d3库的源代码中(代码见https://github.com/bugzu/reD3/blob/master/src/area.js),几乎每一行都包含对this的引用。网站主页:http://bugzu.github.io/reD3/#/

示例:

(function(global) {

    global.reD3 = global.reD3 || {};

    function Area(element, options) {
        this.element = element;
        this.options = options;
        this.init();
    }

    Area.prototype = {

        init: function() {
            var options = this.options,
            width = options.width || 960,
            height = options.height || 500,
            oMargin = options.margin;

            var margin = {
                top: 20,
                right: 30,
                bottom: 30,
                left: 40
            },

            margin = reD3.util.mixin(margin, oMargin);

            width = this.width = width - margin.left - margin.right;
            height = this.height = height - margin.top - margin.bottom;
            var xValue = this.xValue = options.xValue || 'date';
            var yValue = this.yValue = options.yValue || 'value';

这种频繁使用的目的是什么?对于可重复使用(图表)组件,这样的技术有哪些优点/缺点?

1 个答案:

答案 0 :(得分:1)

由于Area是一个类(您可以在构造函数中使用'this'来判断,并且调用它将使用new关键字),使用this修改对象而不是本地或全局变量。无论某个库是用于图表还是其他任何东西,使用this都会鼓励封装,尽管它比其他语言类别更不明显。