2015-02-17 2 views
1

Это объектный метод из программы с использованием Processing, js. Он выполняет итерацию через все объекты PVector, хранящиеся в массиве force внутри объекта, добавляя их и возвращая сумму в качестве другого объекта PVector.Uncaught TypeError: Невозможно прочитать свойство 'x' неопределенного, возвращающее функцию Null

После отладки я обнаружил, что это является причиной ошибки: «Неподготовлено TypeError: Невозможно прочитать свойство« x »неопределенного», и я просто не понимаю проблему или что означает ошибка. Любая помощь приветствуется.

Body.prototype.resForce = function() { 
    var resForce = new PVector(0, 0); 
    for (var i=0; i<this.forces.length; i++) { 
     resForce.set = resForce.add(this.forces[i]); 
    } 
return resForce; 
}; 

EDIT:

Вот full code так это делает немного больше смысла ..

+1

С правой стороны он должен отображать номер строки оскорбительной ошибки. Убедитесь, что эта ошибка возникает в этом блоке кода, или разместите другой javascript, прикрепленный к этому проекту, чтобы мы могли изучить это дальше. –

+0

Это предположение, но документы processing.js не используют «набор» на таком PVector. Если это просто сложение векторов для создания дельта, я думаю, что тело цикла должно быть просто resForce.add() без назначения. Кроме того, возможно, вызов resForce.add пытается получить доступ к свойству «x» this.forces [i], но this.forces [i] не имеет x, поэтому у вас, вероятно, есть что-то в массиве, который не является 'PVector. – Mic

+0

На самом деле, глядя на это немного ближе, я думаю, вам нужно поделиться кодом, который объявляет и заполняет this.forces. Это актуально. – Mic

ответ

0

Я, кажется, решили этот вопрос после игры вокруг совсем немного, когда код. То, что я получаю от отладки, - это то, что где-то вдоль строки переменная .forces каждого объекта Body превратилась из Массив в неопределенное, что приводит к тому, что метод .resForce() не выполняет итерацию по всем силам и возвращает неопределенный объект. Метод, который, как я думал, был проблемой, остался нетронутым. Спасибо за любую помощь, предлагаемую в любом случае. :)

Смежные вопросы