1

我有一个quickbuy_view.checkout() 接受product对象的函数。我用

quickbuy_view.checkout(new Product(12530257))

这是出现错误的代码的一部分

console.log('quickbuy_view')
console.log(quickbuy_view)
console.log('quickbuy_view.product')
console.log(quickbuy_view.product)
console.log('quickbuy_view.product.displays');
console.log(quickbuy_view.product.displays);

var display = quickbuy_view.product.displays[0];
//This is where the actual error occurs
$('#quickbuy .display .main img').attr('src',display.vw1Reg)

在 chrome 的控制台中,我可以看到它quickbuy_view.product返回一个displays长度为 3 的数组的对象。但是,当我尝试 log 时quickbuy_view.product.displays,返回一个空数组。

奇怪的是,当我稍后进入时quickbuy_view.product.displays,我得到了预期的数组。

控制台视图

4

1 回答 1

2

这是因为 Chrome 开发工具的console.log工作方式。当您记录一个对象时,它仍然是活动的,也就是说它不是它当前状态的快照商店。但是,当您记录原语时,它是属性的当前状态。

因此,displays数组是在记录代码之后设置的,但是当您检查该product属性时,它是“活动的”,因此在您展开它之前它不会被更新。

于 2012-07-18T15:17:11.357 回答