控制台中的缓存对象?

Roy*_*mir 12 javascript firefox jquery firebug

我将从问题开始:

  1. 我正在改变对象文字的内容.(更改属性值)
  2. Firebug控制台(首次点击)显示正确的值.
  3. 但过了一段时间,它会陷入一个特定的价值并停止改变.

(注意:stringify对象的表示 - 始终显示正确的值)

以下是详细信息:

  1. streettextbox(它应该设置StreetText对象中的值)中选择一个

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

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

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

这里发生了什么?

在此输入图像描述

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

  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() || "";
                }
        }
Run Code Online (Sandbox Code Playgroud)

并通过点击按钮在控制台上显示:

 obj.getData();
 console.log(obj);
Run Code Online (Sandbox Code Playgroud)

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

ps:ff:14.0.1
fb:1.10.6

并关闭缓存

在此输入图像描述

小智 4

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