我有一個JavaScript對象中的數組,其行爲方式我無法解釋。我在哪裏可以找到有關JavaScript中對象內數組行爲的信息?
的代碼是:
var board = {
val: [false],
init: function() {
console.log(board); // when expanded, console says board.val[0] = true
console.log(board.val); // console says board.val[0] = false
board.val[0] = true;
},
};
board.init();
的方法輸出在控制檯中對象,然後修改該數組中的值。但是在值被改變之前對象的輸出表明該值已經被改變。
我在尋找一個解釋爲什麼這種情況正在發生,或者是一個解釋的鏈接。如有需要,請在評論中澄清。我會很樂意提供任何我忽略的細節。
在我工作的項目的數組是一個大型的,多維數組,而這種行爲是造成意外的結果。對不起,我沒有任何想法或研究分享。我不知道要搜索什麼,這不會讓我瞭解JavaScript數組的基礎知識。我以爲我知道JavaScript數組和對象是如何工作的,但這是困擾我的。
剛剛測試過你的代碼,它(正確)輸出'false'。您是在特定的瀏覽器還是在NodeJS中測試? – Martin
數組本身不能爲真或假。你的例子沒有意義。 –
board.val是一個數組。你應該測試board.val [0]。你爲什麼不簡單地分配board.val = false而不是board.val = [false]? – Ludo