Pum*_*mma 4 javascript coffeescript
我有一段Javascript/Coffeescript似乎无序执行.
console.log list
console.log list[card_number]
if list[card_number]
console.log "MATCHES"
new_card = list[card_number]
else
console.log "NO MATCHES"
new_card = create_new_card(card_number)
create_new_card: (card_number) ->
new_card =
card_number: card_number
list[new_card.card_number] = new_card
return new_card
Run Code Online (Sandbox Code Playgroud)
每次运行时,第一个console.log显示包含new_card的卡片列表,即使尚未创建卡片.然后else无论运行多少次,它总是会击中它.
如果我list[<card_number>]在此代码运行后尝试在Javascript控制台中运行,我会收到正确的对象,但每次代码运行时,都会发生相同的事件.
在谷歌浏览器中,如果要记录具有日志记录状态的对象,则需要记录克隆对象或将其字符串化.
var a = [];
console.log(a);
a[0] = 3;
Run Code Online (Sandbox Code Playgroud)
将记录[3]因为它记录一个活动对象,而这将记录[]:
var a = [];
console.log(JSON.parse(JSON.stringify(a)));
a[0] = 3;
Run Code Online (Sandbox Code Playgroud)
它也是一个活动对象日志记录,但它是一个一次性克隆,在a没有任何项目时克隆.
这与@CallumRogers指出的代码中可能存在的逻辑错误无关.