2011-03-25 41 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