0

これが本当に質問なのか、観察なのか、それともバグなのかはわかりません。

JavaScript コード全体で、多くの console.log および console.group ステートメントを使用して、内部で何が起こっているかを追跡しています。コードは再帰も行うため、グループのインデントを正しくすることが非常に重要になります。

//問題を説明するワーキングダミーコード
変数データ = 3;
var デモ =(関数(){
    var internal=関数(){
        console.group("内部");
        console.log("ちょっと賢いたわごと");
        console.groupEnd();
    }

    console.group("クロージャ1の内部");
    console.group("クロージャーの内部");

    内部();

    もし (データ===5){
        console.log("面白いこと");
    }

    console.groupEnd();
    console.log("ちょっと賢いやつ 1");
    console.groupEnd();

}( データ ));
console.log("インデントは正しい?!");

すべてのコード ブロックが実行されると、コンソールに構築されたツリーは深くなりますが、階層のルート レベルに戻ります。現在、ブロックが他のブロックを実行せず 、コンソールに何も記録されていない場合、インデントはコード ブロックを離れた後も +1 のままです。

変更

変数データ=5
上記のダミーコードで
変数データ=3
インデントが間違っていることがわかります。

より一般的に言えば; console.group が呼び出されるたびに console.log を使用せずに console.group をネストすると、誤ったインデントが発生します。

ChromeDevTeam がchromedevtools の実装中に firebugコンソール APIを参照し、この動作が firebug でも同じであると想定していることを知っています。

誰かが同じ行動を経験したかどうか疑問に思いますか?この動作が期待どおりかどうかは誰にもわかりませんか? 最も重要な; このインデントの問題を解決するための回避策を知っている人はいますか? もちろん、グループを開くたびに何かを console.log に記録することもできますが、私に言わせれば、これは本当の考えではありません..

このトピックに関する有益な情報をありがとうございます。この質問がちょっと不自由な場合は申し訳ありません:(

//Nr2 を編集 -> 問題を説明するためにコードを更新しました。説明されているように、偽のインデントが生成されるようになりました(私が期待しているものに対して)。

4

1 に答える 1

1

この問題についてバグを報告しました: https://bugs.webkit.org/show_bug.cgi?id=63455

于 2011-06-27T15:10:43.890 に答える