12

問題から始めましょう:

  1. オブジェクトリテラルの内容を変更しています。(プロパティ値の変更
  2. Firebugコンソール(最初のクリック)には正しい値が表示されます。
  3. しかし、しばらくすると、特定の値に固執し、変更が停止します。

注意:stringifyオブジェクトの表現-常に正しい値を表示します

そしてここに詳細があります:

  1. でaを選択しますstreet(オブジェクトに値textboxを設定する必要がStreetTextあります)

  2. console(幅の広い行)を見て、最後の行を押して、通りのテキストを確認します。

最初は大丈夫です。2回目の試行では、別のストリートを選択した後、古い値のままになります。

ただし、(オブジェクトで)更新を押すと、正しい通りの名前が表示されます。

ここで何が起こっているのですか?

ここに画像の説明を入力してください

私のオブジェクトは通常のオブジェクトリテラルです:

  var obj =
            {
                getData: function ()
                {

                    obj.CountryId = $(".ddlCountry").val() || "";
                    obj.CountryText = $(".ddlCountry  :selected").text() || "";
                    obj.StateId = $(".ddlState:visible").val() || "";
                    obj.StateText = $(".ddlState:visible  :selected").text() || "";
                    obj.CityId = $(".hfDataIdCity").val() || "";
                    obj.CityText = $(".hfDataTextCity").val() || "";
                    obj.StreetId = $(".hfDataIdStreet").val() || "";
                    obj.StreetText = $(".hfDataTextStreet").val() || "";
                }
        }

コンソールの表示は、ボタンをクリックすることで行われます。

 obj.getData();
 console.log(obj);

正しい値が表示されないのはなぜですか?(更新後のみ....)

ps:ff:14.0.1
fb:1.10.6

キャッシュがオフになっています

ここに画像の説明を入力してください

4

1 に答える 1

4

console.log(obj)ではなくオブジェクトにconsole.dir(obj)を使用します。これを行うことでオブジェクトの文字列を取得するため、更新はコードでは機能しますが、コンソールには表示されません。文字列は不変であるため、コンソールにプロパティの更新は表示されません。ヒント:Chromeデバッガーでウォッチ式を使用します。

于 2013-02-05T18:41:17.890 に答える