1

我在使用 javascript 时遇到了一个奇怪的问题:在某个变量中存储新的 Date().getTime() 时,它变为 0。

    console.log(new Date().getTime()); // Shows the timestamp
    p.channels[p.chann].startTime = new Date().getTime();
    console.log(p.channels[p.chann].startTime); // Shows 0

变量 p.channels[p.chann].startTime 完全存在(否则无论如何都会显示错误......)

有谁知道这个问题可能来自哪里?哦

4

3 回答 3

2

问题是,我的变量是一个音频元素,我可以在其中创建 startTime 值,但它被设置为 0 并且不能设置为其他任何值。

于 2012-05-31T16:49:05.060 回答
0

我创建了一个JS Fiddle来证明它有效。

p = {};
p.channels = [];
p.chann = 0;
p.channels[p.chann] = {};

p.channels[p.chann].startTime = new Date().getTime();

document.write(p.channels[p.chann].startTime);

此失败的可能原因是p.chann在设置和提取值之间已更改,或者p.channels[p.chann]尚未设置为对象(您可以通过注释掉 where 行来测试p.channels[p.chann] = {};

于 2012-05-31T11:00:21.500 回答
0

由于此代码有效,唯一的问题可能是p.channels[p.chann].startTime在您检索值时是否存在,或者在您的实际代码中您正在读取不同的值(可能p.chann同时更改,因为您处于循环中或您创建了一个闭包......很难说)

var p = {
    chann    : 0,
    channels : [
       { startTime : 0 }
    ]    
};

p.channels[p.chann].startTime = new Date().getTime();
console.log(p.channels[p.chann].startTime); // Shows the value
于 2012-05-31T11:02:01.533 回答