控制台中的缓存对象?

时间:2013-02-04 14:42:13

标签: javascript jquery firefox firebug

我将从问题开始:

  1. 我正在更改对象文字的内容。 (更改属性值
  2. Firebug控制台(首次点击)显示正确的值。
  3. 但是过了一会儿,它会停留在一个特定的值上并停止改变。
  4. 注意:对象的stringify表示 - 始终显示正确的值

    以下是详细信息:

    1. 我在street中选择了textbox(它应该在对象中设置StreetText值)

    2. 我查看console(宽线)并按最后一行,查看街道文字

    3. 起初没关系。在第二次尝试中,在我选择另一条街道之后,它保持原来的价值。

      但是,当我按下刷新(在对象上)时,它会显示正确的街道名称。

      这里发生了什么?

      enter image description here

      我的对象是常规对象文字:

        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);
      

      为什么我没有看到正确的值? (仅在刷新后....)

      P.S。 : ff:14.0.1
      FB:1.10.6

      并关闭缓存

      enter image description here

1 个答案:

答案 0 :(得分:4)

对于没有console.log(obj)的对象使用console.dir(obj),你通过这样做得到一个对象的字符串,所以更新它仍然可以在你的代码中工作,但不会在控制台中显示。字符串是不可变的,因此控制台中不会显示任何属性更新。提示:在chrome调试器中使用监视表达式。