我有一个函数,它从我想要存储在对象中的其他地方接收数据。我可以将它存储在我想要的对象中,但是当我尝试在另一个文件中访问该对象的数组属性时,我不断收到错误,告诉我数组中没有任何内容。这是我正在使用的代码:
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来获取我的数据。任何帮助将不胜感激。如果我遗漏任何细节,请告诉我,我很乐意为他们提供。