我在用
console.log(p);
console.log(p.datestrshow);
但是控制台中的输出是

为什么它显然不是未定义的?
正在做
for(i in p)
console.log(i+': ', (typeof p[i] == 'function' ? 'function' : p[i]));
结果是
我在用
console.log(p);
console.log(p.datestrshow);
但是控制台中的输出是

为什么它显然不是未定义的?
for(i in p)
console.log(i+': ', (typeof p[i] == 'function' ? 'function' : p[i]));
结果是
当您调用它时,它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,它仍然会在您展开对象时出现。