我已经宣称自己是一个名为“故障”的JavaScript对象。
然后我借用了一个我在jQuery extend()文档中找到的函数,该函数在不同的页面上运行良好,但是相同的设置 - 奖励对象而不是细分。
breakdown = {};
breakdown.printObj = function(obj) {
var arr = [];
$.each(obj, function(key, val) {
var next = key + ": ";
next += $.isPlainObject(val) ? printObj(val) : val;
arr.push( next );
});
return "{ " + arr.join(", ") + " }";
}
我正在尝试使用它,因为我在另一页上看到我的“类别”数组中的内容:
breakdown.getPointsBreakdown = function(categories, transactions) {
alert( breakdown.printObj(categories) );
如果我警告“输入”,则会显示“对象”。如果我提醒“categories [1] .Title”,它会显示“Good Behavior”,因此数组正在传递给此函数中的categories变量。
但是,当我使用“breakdown.printObj”时,我在FireBug中收到以下错误:
ReferenceError { message="printObj is not defined", fileName="https://frog.ashingtonh...7fa8452ccb3e94ba89e487a", more...}
我不明白怎么做!
答案 0 :(得分:1)
更改
breakdown.printObj = function(obj) {
// snip...
};
到
breakdown.printObj = function printObj(obj) {
// snip...
};
这样你就可以递归地调用它。
答案 1 :(得分:1)
您应该在第6行中拥有breakdown.printObj(val)
而不仅仅是printObj(val)
。
答案 2 :(得分:1)
更改
next += $.isPlainObject(val) ? printObj(val) : val;
为:
next += $.isPlainObject(val) ? breakdown.printObj(val) : val;