У меня есть следующий код, создающий объекты в цикле, а затем доступ к их значениям. Теперь я пришел к проблеме, что доступ к самому объекту в порядке, но не массив, содержащий объект. Я что-то упустил?Нет доступа к объекту в массиве, но к самому объекту
camList = new Array();
for (var i=0; i<8; i++)
{
var camObj = new Camera(i);
camList.push(camObj);
console.log(camObj.id); //this works
console.log(camList[i].id); //this doesnt
}
PS: В этом примере camObj.id просто возвращает текущее значение i.
PPS: У меня есть TypeError: Невозможно прочитать свойство id из неопределенного.
Edit:
Я добавил полный пример кода.
ОбъектКамера:
var Camera = function(id, cam)
{
this.id = id;
this.cam = cam;
this.res = {
"x" : this.cam.get(CV_CAP_PROP_FRAME_WIDTH),
"y" : this.cam.get(CV_CAP_PROP_FRAME_HEIGHT)
};
this.overlayData = new Array();
};
exports.Camera = Camera;
Основной код:
var cv = require("opencv-node");
var Camera = require("./cameraModule").Camera;
var camList = new Array();
for (var i=0; i<8; i++)
{
var capture = new cv.VideoCapture();
capture.open(i);
if (capture.isOpened())
{
var camObj = new Camera(i, capture);
camList.push(camObj);
console.log(camList[i].id); //Here is the problem
}
}
** Как ** не работает? Что происходит? – SLaks
Где вы определяете 'camList'? Вы уверены, что ваш 'i' соответствует индексу? Что вы видите, если вы 'console.log (camList);'? –
Согласитесь с @RocketHazmat - Индекс, вероятно, не выравнивается. – tymeJV