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には、現在のドキュメントで一致する1つのクラスがあります。

4

4 に答える 4

1

if(typeof(obj[i]) === 'object') {obj[i]の場合に実行されnullます。あなたはそれを知っていますか?$.isPlainObject()ソース)で試してみてください

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

ほぼ確実に、循環参照(つまり、入力オブジェクトのプロパティの1つ(またはそれらのプロパティのプロパティの1つなど))が、それ自体に戻る構造内の別のプロパティを参照します。

ちょっと考えてみると、なぜこれがうまくいかないのかが明らかになるはずです。

于 2011-08-10T14:16:46.270 に答える
0

ChromeコンソールでJSON.stringify(jQueryObject)を呼び出すと、「circular_structure」エラーが発生します。

于 2011-08-10T14:14:08.643 に答える