-1

我有一堂课是这样开始的:

function event()
{
    this.event_id = null;

然后这一切都被一个 init 函数填充。

在我脚本的另一部分,我无法访问这些变量。

如果我运行此代码:

    console.log(my_event);
    console.log(my_event.event_id);

对于第一行,控制台为我提供了填充了 event_id 的事件对象的一个​​很好的表示,但对于第二行,它给了我 null。

这是怎么回事?变量应该是公共的吗?

非常感谢您的帮助。

4

1 回答 1

2

当您console.log使用非标量值(例如对象)时,仅在您展开以在 chrome 开发人员工具控制台中查看对象属性时才检索其实际状态。< 100 个项目的短数组或类似数组将自动扩展,尽管在这种情况下通常也不会立即检索到状态(我的测试结果对此有所不同,也许我只是看到了一些东西)。

因此,如果您null从获取console.log(my_event.event_id);,则实际上是在null执行时console.log。结果console.log(my_event);取决于您在控制台中展开记录的对象的时间。如果您发出了修改event_id属性的 ajax 请求,并且在您在控制台中展开对象时请求已完成,它将显示更改的值。

此外,javascript 中的每个对象属性都是“公共的”。

于 2012-07-27T11:25:58.403 回答