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

发布于 2024-10-26 14:32:54 字数 410 浏览 2 评论 0原文

我正在使用

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

但是控制台中的输出是

console output

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


doing

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

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

I am using

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

However the output in the console is

console output

Why is it undefined when it is clearly not?


doing

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

results in enter image description here

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

七色彩虹 2024-11-02 14:32:54

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

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

您可以在控制台中执行以下测试:

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

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

The console.log doesn't make a clone of your p object when you call it.

What's happening is that p.datestrshow is indeed undefined when you console.log, but by the time you expand the p object in the console, it has been defined, and the console is showing the current state of the p object with datestrshow defined.

Here's a test you can do in the console:

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

Run this code in the console, then expand the object that was logged. Even though we clearly defined b after the console.log, it still shows up when you expand the object.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文