我試圖優化我正在處理的一些代碼後收到此錯誤。類型錯誤undefined不是函數 - 織物JS
起初,我用canvas.forEachObject(function(obj){})
這是工作正常,但我需要在一定程度上簡化程序。
我現在有一個功能,通過畫布迭代,並添加了所有相關的對象類型的數組,我會再使用。
function getObjects(){
var canvasObjects = canvas.getObjects();
var theArray = new Array();
for(obj in canvasObjects){
if(canvasObjects[obj].get('type') == 'thisType'){
theArray.push(canvasObjects[obj]);
}
if(canvasObjects[obj].get('type') == 'group'){
var groupObjects = canvasObjects[obj].getObjects();
for(groupObj in groupObjects){
if(groupObjects[groupObj].get('type') == 'thisType'){
theArray.push(groupObjects[groupObj]);
}
}
}
}
return theArray;
}
我然後調用中使用的陣列,以確定是否發生了碰撞的動畫循環的功能。
陣在這裏創建:
var geoArray = getObjects();
function detectCollision(target) {
target.setCoords();
geoArray.forEachObject(function(obj)
//for(obj in geoArray) //1st attempt - same result
{
obj.setCoords();
if(obj!=target && target.intersectsWithObject(obj)){
//..do stuff
}
});
}
數組是建立了良好的,幷包含對象的正確數目,所以我敢肯定,有就是有沒有問題。當我運行碰撞函數併發生類型錯誤問題時,會發生此問題。搜索表明我可能不會返回對象類型,但我不確定是否是這種情況,如果是這樣,我不知道如何解決它。
非常感謝您的幫助。
編輯:確切的錯誤是:
[Error] TypeError: 'undefined' is not a function (evaluating 'geoArray.forEachObject')
編輯,碰撞環路內總是出現錯誤,並儘快「OBJ」之稱。
哪條線有錯誤? – ppoliani
geoArray分配在哪裏? – GrandmasterB
對不起,我將變量重命名爲「更清晰」 - 失敗。我已經編輯了問題 – null