正确定义的JavaScript函数中的ReferenceError

ReferenceError from a JavaScript function that is defined correctly?

本文关键字:ReferenceError 函数 JavaScript 定义      更新时间:2023-09-26

我为自己声明了一个名为"breakdown"的JavaScript对象。

我已经借了一个函数,我发现在jQuery扩展()文档,它在不同的页面上工作得很好,但相同的设置-奖励对象,而不是崩溃。

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) );

如果我"typeof"该警报,它将显示"object"。如果我警告"类别[1]"。,它显示"Good Behaviour",所以数组被正确地传递给了这个函数中的categories变量。

然而,当我使用"breakdown。printObj",我在FireBug中得到以下错误:

ReferenceError { message="printObj is not defined", fileName="https://frog.ashingtonh...7fa8452ccb3e94ba89e487a", more...}

我不明白怎么回事!

变化

    next += $.isPlainObject(val) ? printObj(val) : val; 

:

    next += $.isPlainObject(val) ? breakdown.printObj(val) : val; 

你应该在第6行有breakdown.printObj(val)而不是printObj(val)

变化

breakdown.printObj = function(obj) { 
    // snip...
};

breakdown.printObj = function printObj(obj) { 
    // snip...
};

以便你可以递归地调用它。

命名函数表达式