Javascript 这是什么意思?uu canvas.push(canvas);

Javascript 这是什么意思?uu canvas.push(canvas);,javascript,html,canvas,fabricjs,Javascript,Html,Canvas,Fabricjs,在检查fabric js示例时 我能把这个画出来被调用时,我无法理解为什么调用它,如果不调用它会怎么样 var canvas = new fabric.Canvas('c2'); canvas.add(new fabric.Circle({ radius: 30, fill: '#f55', top: 100, left: 100 })); canvas.selection = false; this.__canvases.push(canvas); 如果查看示例页面的HTML,您将在第95-

在检查fabric js示例时 我能把这个画出来被调用时,我无法理解为什么调用它,如果不调用它会怎么样

var canvas = new fabric.Canvas('c2');
canvas.add(new fabric.Circle({ radius: 30, fill: '#f55', top: 100, left: 100 }));
canvas.selection = false;
this.__canvases.push(canvas);

如果查看示例页面的HTML,您将在第95-98行找到以下代码

<script>
  this.__canvases = [ ];
  fabric.Object.prototype.originX = fabric.Object.prototype.originY = 'center';
</script>
这段代码只计算在示例页面上显示画布元素的位置

因此,为了回答您的问题,它仅在示例页面上用于帮助显示示例页面。代码中不需要它。在我看来,它不应该包含在每个示例的代码显示中

(function() {
  fabric.util.addListener(fabric.window, 'load', function() {
    var canvas = this.__canvas || this.canvas,
        canvases = this.__canvases || this.canvases;

    canvas && canvas.calcOffset && canvas.calcOffset();

    if (canvases && canvases.length) {
      for (var i = 0, len = canvases.length; i < len; i++) {
        canvases[i].calcOffset();
      }
    }
  });
})();