我有一个函数可以从其他地方接收我想存储在对象中的数据。我可以将它存储在我想要的对象中,但是当我尝试在另一个文件中访问该对象的数组属性时,我不断收到一个错误,告诉我数组中没有任何内容。这是我正在使用的代码:
频谱分析仪.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 部分中存储任何值。顺便说一句,构造函数中 URL 开头的“ws”SpectrumAnalyser
表示我正在使用 WebSockets 来获取我的数据。任何帮助将不胜感激。如果我遗漏任何细节,请告诉我,我会很乐意提供。