我正在做类似以下的事情:
var car = {'make':'honda'};
console.log(car);
car.model = 'civic';
$('#car').text(JSON.stringify(car));
console.log(car);
当我打开开发者控制台并输入car
时,我只看到:
{make: "honda"}
如果我console.log(car)
,我会看到:
{make: "honda", model: "civic"}
在Chrome控制台中输入更新的对象时,我的原因是什么?
如果我输入JSON.parse($('#car').text())
,我会看到整个对象。这是我必须这样做的吗?
更新示例:
在jquery ajax成功回调中发生以下情况:
var localClientStorage = window.localStorage;
var car= localClientStorage.getItem("car");
car = JSON.parse(car);
car.model= 'civic';
localClientStorage.setItem("car", JSON.stringify(car));
当我在控制台中输入汽车时,模型属性不存在。
function getCarModel(make) {
$.ajax({
url: '/Car/GetModel',
async: true,
type: "POST",
dataType: "json",
contentType: "application/json",
data: JSON.stringify({ make: make })
success: function (data) {
var localClientStorage = window.localStorage;
var carObject = localClientStorage.getItem("car");
carObject = JSON.parse(carObject );
carObject.model = data.Car.Model;
localClientStorage.setItem("car", JSON.stringify(carObject));
$('#carObject').text(JSON.stringify(carObject));
localClientStorage.removeItem("car");
}
});
};