1
我在寫一個遞歸地從JSON對象構建菜單樹的元素。然而,當函數調用本身我得到的錯誤:this.buildMenu is not a function
遞歸函數調用聚合物
這裏的buildMenu
buildMenu: function(items) {
var node = new Array();
items.forEach(function(elem,index,arr) {
node.push(elem.Name);
if (elem.SubBranch.length > 0) {
return this.buildMenu(elem.SubBranch); //error is here
}
});
return node;
}
調用buildMenu最初的方法
handleRes: function() {
this.response = this.$.categoryList.lastResponse;
this.menuItems = this.buildMenu(this.response);
//...
}
我驗證過的數據是存在的,正確格式化。如果我註釋掉遞歸調用,我會得到第一層結果。所以,它在這方面工作。
在遞歸調用中調用的參數elem.SubBranch
是一個數組,並且完全有效,如果這很重要的話。
你可以建立一個蹲點來證明問題嗎? –