javascript对象文字,值/无值?

javascript对象文字,值/无值?,javascript,console,object-literal,Javascript,Console,Object Literal,我正在使用 console.log(p); console.log(p.datestrshow); 但是,控制台中的输出是 为什么它是未定义的,而它显然不是 做 结果控制台。当调用p对象时,log不会克隆该对象 发生的情况是,当您在控制台中展开p对象时,p.datestrshow确实是未定义的,但是当您在控制台中展开p对象时,它已经被定义,并且控制台正在显示定义了datestrshow的对象的当前状态 您可以在控制台中执行以下测试: var test = {a:'a'}; console.

我正在使用

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

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



结果控制台。当调用
p
对象时,log不会克隆该对象

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

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

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

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

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

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

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

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

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

执行例如
console.log(p.method)
返回“POST”。这就是为什么我如此困惑的原因如果你使用
p['datestrshow']
,会有什么不同吗?
String(p.datestrshow)
做什么,例如
console.log(p.method)
返回'POST'。这就是为什么我如此困惑的原因如果你使用
p['datestrshow']
,会有什么不同吗?
String(p.datestrshow)
怎么样才能在这两行的执行中定义它呢?如果它对我有帮助的话,我正在尝试修复演示()日期选择器日期在第一次单击之前不会从
加载更改
。@Hailwood:不会。稍后将对其进行定义,但控制台中显示的
p
对象不是时间点的快照。当
console.log(p.datestrshow)时运行时,它确实是未定义的。但是,当您在控制台中实际扩展对象时,它已经被定义,并且控制台通过
datestrshow
@Hailwood反映了
p
的当前状态:对不起,我对该插件没有多大帮助。我只能解释为什么该属性在直接访问时显示为未定义,但从对象引用定义。你可能想从你的插件问题开始另一个问题。但是如何在这两行代码的执行中定义它呢?如果这有助于我使用的话,我正在尝试修复一个事实,即在演示()中,日期选择器日期在第一次单击之前不会从
loading
更改…@Hailwood:不会。稍后将对其进行定义,但控制台中显示的
p
对象不是时间点的快照。当
console.log(p.datestrshow)时运行时,它确实是未定义的。但是,当您在控制台中实际扩展对象时,它已经被定义,并且控制台通过
datestrshow
@Hailwood反映了
p
的当前状态:对不起,我对该插件没有多大帮助。我只能解释为什么该属性在直接访问时显示为未定义,但从对象引用定义。你可能想用你的插件问题开始另一个问题。