访问作为对象属性的数组的值

时间:2013-08-03 20:30:56

标签: javascript

我有一个函数,它从我想要存储在对象中的其他地方接收数据。我可以将它存储在我想要的对象中,但是当我尝试在另一个文件中访问该对象的数组属性时,我不断收到错误,告诉我数组中没有任何内容。这是我正在使用的代码:

spectrumanalyser.js:

SpectrumAnalyzer.prototype.configSAHandler = function(event)
{
  if (this.currComm < saCommands.length)
        SAConfigure(this.parent, this.configurl, saCommands[this.currComm++]);
  else {
    this.ws = SAStream(this.spectrumurl, this);
  }
}

调用

function SAStream(url,sa)
{


    ws.onmessage = function (evt) {
    //var array = window.atob(evt.data);
    if (evt.data instanceof ArrayBuffer) {
        var array = new Uint8Array(evt.data);
        sa.drawSpectrum(array);
        for (var i = 0, j = 0; j < (array.length); i += this.binWidth, j++) {
            sa.channelData[j] = array[j]; //This assignment works fine
            console.log(sa.channelData[j]); //Logging the data to the console works fine.
        }
    }
};

sa或SpectrumAnalyser对象的类定义如下:

function SpectrumAnalyzer( said, parent, configurl, spectrumurl )
{
  this.id = said;
  this.parent = parent;
  this.configurl = configurl;
  this.spectrumurl = spectrumurl;
  this.channelData = new Array();

  //...rest of the function
}

主要代码包含在current.html中:

var sa1 = new SpectrumAnalyzer( 1, 'SA1', "ws://console.sb3.orbit-lab.org:6101", "ws://console.sb3.orbit-lab.org:6100");

// ...some other stuff

for(var i = 0; i < 256; i++)
{
    // This is the part that is giving me the error of "undefined"
    console.log(sa1.channelData[i]); 
}

我不确定channelData数组为什么在spectrumanalyser.js文件中存储值,但它没有在current.html的JavaScript部分中存储任何值。顺便说一句,SpectrumAnalyser构造函数中URL开头的“ws”表示我正在使用WebSockets来获取我的数据。任何帮助将不胜感激。如果我遗漏任何细节,请告诉我,我很乐意为他们提供。

0 个答案:

没有答案