1

这段代码有什么问题:

function obj2string(obj) {
    var result = '';

    for(var i in obj) {
        if(typeof(obj[i]) === 'object') {
            result += obj2string(obj[i]);
        } else {
            result += i + " => " + obj[i] + "\n";
        }
    }

    return result;
}

它应该递归地将结果字符串与新属性集中在一起,但是在某些时候递归太多了。

我正在传递一个像这样的对象:$(this);->来自 jQuery。

$(this)

作为这个 jQuery 选择器的一个实例:$('.debug');witch 在当前文档中有一个匹配的类。

4

4 回答 4

1
var s = JSON.stringify(obj, null, 4);
于 2011-08-10T14:09:21.930 回答
1

if(typeof(obj[i]) === 'object') {将执行 if obj[i]is null。你知道吗?试试看$.isPlainObject()来源

于 2011-08-10T14:13:37.253 回答
1

您几乎可以肯定有一个循环引用(即输入对象的属性之一(或这些属性的属性之一,等等))引用结构中的另一个属性,该属性返回到自身。

片刻的思考应该会揭示为什么这不可能奏效。

于 2011-08-10T14:16:46.270 回答
0

在 Chrome 控制台中调用 JSON.stringify( jQueryObject ) 会出现“circular_structure”错误。

于 2011-08-10T14:14:08.643 回答