javascript对象字面值,值/无值?

时间:2011-03-25 01:24:54

标签: javascript console object-literal

我正在使用

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

1 个答案:

答案 0 :(得分:0)

当您调用console.log时,p不会复制您的p.datestrshow对象。

当您console.log时,p确实未定义,但是当您在控制台中展开p对象时,它已被定义,并且控制台正在显示定义datestrshow的{​​{1}}对象的当前状态。

这是您可以在控制台中进行的测试:

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

在控制台中运行此代码,然后展开已记录的对象。即使我们在b之后明确定义了console.log,但在展开对象时它仍会显示。