Конструктор this.A создает экземпляры, которые затем отправляются конструктору this.b. Массив составляется из обоих экземпляров конструктора. Доступ к значениям из экземпляров this.b из массива, в котором они хранятся, невозможен. Получена ошибка «Невозможно получить свойство 'calc' of undefined». Однако доступ к значениям можно получить в конце после заполнения массива. Это устарело, поскольку «var data» — это бесконечный поток значений, поэтому массивы постоянно заполняются.
var data = [-1,1,4,3,-3,-4,1,-4];
function init() {
this.A = function(value, time) {
this.value = value;
this.time = time
}
this.B = function(point, array) {
this.calc = function() {
var x = point.value;
if(x>=0){
return 'positive'
} else {
return 'negative'
}
}
}
this.time = 0;
this.arrayA = [];
this.arrayB = [];
}
function update (datastream) {
var time = this.time += 1;
var value = datastream[time];
var x = new this.A(value, time);
var y = new this.B(x, this.arrayA);
this.arrayA.push(x);
this.arrayB.push(y);
//error:
console.log(this.arrayB[time].calc())
}
function finish() {
for(let x=0; x < data.length; x++) {
console.log(this.arrayB[x].calc())
}
}
init();
for(let x=0; x < data.length; x++) {
update(data)
};
finish()