0

Google Chrome の devtools を使用して生活を楽にしようとしましたが、ページの JavaScript をその場で変更しようとしましたが、予期しない動作をするようです

ゲームのすべてのフレームで呼び出されるこの関数があります

View.prototype.onHit = function() {
    for(var i = 0; i < this.obstacles.length; i++) {
        if(this.obstacles[i].dealsDamage) {
            //deal damage
        } else {
            //do something else
        }
    }
}

そして、クロムの「ソースタブ」でそれを開いて実行を一時停止し、次のような単純なものを追加すると

console.log("hey");

期待どおりにコンソールに「ちょっと」というテキストの出力を開始しますが、ifチェックなどのコードを変更した瞬間

        if(!this.obstacles[i].dealsDamage) {
            //do something else
        } else {
            //deal damage
        }

動作を反転してドキュメントを保存すると、コードが有効にならず、ログ ソースが View.js (old) に変更されます

その後変更しても、実行中のJavaScriptには影響しません

コンソールからのスクリーンショット

4

1 に答える 1

2

通常、「(old)」スクリプトは、より複雑な変更が適用された場合にのみ表示されます。つまり、関数のパラメーター番号を変更するか、外部スコープの変数を使用して開始 (そして残念ながら停止) した場合です。

あなたが説明したような単純なユースケースでライブ編集が機能しない場合は、http://crbug.comに報告することをお勧めします。

于 2013-06-17T13:59:17.057 に答える