我将从问题开始:
(注意:对象的stringify
表示 - 始终显示正确的值)
以下是详细信息:
我在street
中选择了textbox
(它应该在对象中设置StreetText
值)
我查看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() || "";
}
}
并通过点击按钮来显示控制台上的显示:
obj.getData();
console.log(obj);
为什么我没有看到正确的值? (仅在刷新后....)
P.S。 :
ff:14.0.1
FB:1.10.6
并关闭缓存
答案 0 :(得分:4)
对于没有console.log(obj)的对象使用console.dir(obj),你通过这样做得到一个对象的字符串,所以更新它仍然可以在你的代码中工作,但不会在控制台中显示。字符串是不可变的,因此控制台中不会显示任何属性更新。提示:在chrome调试器中使用监视表达式。