2

我在用

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

但是控制台中的输出是

控制台输出

为什么它显然不是未定义的?


正在做

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

结果是在此处输入图像描述

4

1 回答 1

0

当您调用它时,它console.log不会克隆您的对象。p

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

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

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

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

于 2011-03-25T01:50:20.973 回答