2011-03-25 43 views
2

我使用javascript對象字面值,值/沒有值?

console.log(p); 
console.log(p.datestrshow); 

然而在控制檯輸出

console output

爲什麼當它顯然是不被它未定義?


for(i in p) 
    console.log(i+': ', (typeof p[i] == 'function' ? 'function' : p[i])); 

結果enter image description here

+0

做例如'console.log(p.method)'返回'POST'。這就是爲什麼我很困惑 – Hailwood 2011-03-25 01:30:52

+0

如果你使用'p ['datestrshow']',它會有所作爲嗎? – 2011-03-25 01:33:02

+0

nope,效果相同 – Hailwood 2011-03-25 01:34:38

回答

0

console.log當你調用它不會使你的p對象的克隆。

發生了什麼事是p.datestrshow確實是不確定的,當你console.log,但你的時間展開控制檯的p對象,它已被定義,控制檯顯示與定義datestrshowp對象的當前狀態。

這是一個測試你可以在控制檯下:

var test = {a:'a'}; 
console.log(test); // log to the console before we define 'b' 
test.b = 'b'; 

運行這段代碼在控制檯,然後展開已記錄的對象。儘管我們在console.log之後明確定義了b,但在展開對象時它仍顯示出來。

+0

怎麼樣,但是怎麼能在這兩行的執行過程中定義呢? – Hailwood 2011-03-25 01:55:31

+0

如果它有幫助我正在使用http://www.web-delicious.com/jquery-events-calendar-wdcalendar/ – Hailwood 2011-03-25 01:56:00

+0

我試圖解決這個事實,在演示(http://www.web-delicious。 com/jquery-plugins-demo/wdCalendar/sample.php)日期選擇器日期不會從'loading'更改,直到它第一次點擊... – Hailwood 2011-03-25 01:57:05