我们可以将在onload函数中声明的数组值用于其他函数吗?

时间:2018-08-23 03:17:37

标签: javascript arrays scope

我有一个onload函数,如下所示:

  canvas = document.getElementById('canvas')
  context = canvas.getContext('2d');
  var imageData;
  var buffer;
  var binary;
  var uint = [];
  img.onload = function () {
  canvas.getContext('2d').drawImage(img, 0, 0, canvas.width, canvas.height);   
  imageData = context.getImageData(0, 0, canvas.width, canvas.height);
  buffer = imageData.data.buffer;
  binary = new Uint8Array(buffer);      
  for (var i = 0; i < binary.length; i++) {
          uint.push(binary[i]);
      }
  }

现在,我的uint是具有所有二进制值的数组。

我正在声明使用以下uint数组的函数:

var request = new somefunction({
    image : {
      height: canvas.height,
      data: uint}
  });

当我检查我的Chrome控制台时,uint会保留我在onload函数中声明的所有值。但是当我尝试访问image.data时,它是一个空数组。

我在这里做什么错了?

0 个答案:

没有答案