我将从问题开始:
- 我正在更改对象字面量的内容。 (更改属性值)
- Firebug 控制台(在第一次点击时)显示正确 值。
- 但过了一段时间后,它会卡在一个特定的值上而停止更改。
(注意:对象的 stringify
表示 - 始终显示正确的值)
详细信息如下:
我在
textbox
中选择了一个street
(它应该在对象中设置StreetText
值)我查看
控制台
(宽行)并按下最后一行,查看街道文本。
一开始没问题。第二次尝试,在我选择另一条街道后,它保持在旧值。
但是,当我(在对象上)按下刷新时,它会显示正确的街道名称。
这是怎么回事?
我的对象是一个普通的对象字面量:
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);
为什么我看不到正确的值? (仅在刷新后......)
附注:
ff: 14.0.1
fb:1.10.6
缓存关闭
最佳答案
对对象使用 console.dir(obj) 而不是 console.log(obj),您通过这样做获得对象的字符串,因此更新它仍然可以在您的代码中工作,但不会显示在控制台中。字符串是不可变的,因此您的控制台中不会显示任何属性更新。提示:在 chrome 调试器中使用 watch 表达式。
关于javascript - 控制台中的缓存对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14689084/