2017-07-06 37 views
-1

我有一個數組,名爲「通道」的對象叫做.phrases。我有一個函數是同一個對象的屬性。在功能方面,我有這樣的代碼:對象陣列不會清除

var returnPassage=new Passage(); 
returnPassage.phrases=[]; 
console.log(returnPassage.phrases); 

控制檯登錄谷歌瀏覽器顯示在一個水平上一個空數組,但如果我點擊下拉則說明該陣列還沒有改變。無論我嘗試使用.pop()還是.splice()或使用new Array()替換陣列,都是如此。

var returnPassage=new Passage(); 
returnPassage.phrases=null; 
returnPassage.phrases=[]; 
console.log(returnPassage.phrases); 

控制檯日誌顯示相同的數組作爲原,而不是一個空白陣列像我想到:如果我這樣做它也,奇怪的是(!!!)真。這裏可能會發生什麼?

+2

向我們展示你的'通道'? –

+0

Aaah只是想出了它!這是Chrome日誌工作的方式。這裏:https://stackoverflow.com/questions/21281186/chrome-devtools-inconsistency-array-length。 –

回答

0

可能發生的情況是,短語僅僅是一個只有吸氣劑的屬性,沒有看到對象,很難說出發生了什麼。

你能想象有你Passage對象

function Passage() { 
 
\t Object.defineProperty(this, 'phrases', { 
 
    \t get: function() { 
 
    \t return ['phrase 1', 'phrase2']; 
 
    }, 
 
    set: function() { 
 
    \t // no setter 
 
    } 
 
    }) 
 
} 
 

 
var passage = new Passage(); 
 
passage.phrases = null; 
 
passage.phrases = []; 
 
console.log(passage.phrases);

0

這裏的發生了什麼事裏面像這樣的設置:Chrome的登錄陣列並顯示在上面一行,然後我的方法改變它,然後下拉顯示它最近的方式。所以這不是一個問題,如何在JavaScript的工作,這是一個問題,我如何閱讀Chrome的顯示。