javascript - console.log 什么时候执行?

标签 javascript class logging console

我正在尝试使用 console.log 调试一些非常简单的 Javascript,但它输出的变量值直到 console.log 调用之后才更改,此时变量是“类”成员(Chrome 22、Firefox 16)。

我期望发生的事情的一个例子是这样的:

var a = 1;
console.log(a);
a += 20;

//console output says a is 1

但是如果变量是“类”成员:

var a = new myClass(1);
console.log(a);
a.x += 20;

//console output says a.x is 21

如果调用日志时控制台不记录该值,那么它最终决定什么时候记录该值,我该如何解决这个问题!

这里是完整的代码:

function myClass() {
    myClass.myClass.apply(this, arguments);
    if (this.constructor === myClass) this.myClass.apply(this, arguments);
};
myClass.myClass = function () {};
myClass.prototype.myClass = function (x_) {
    if (x_ === undefined) x_ = 0;
    this.x = x_;
}

var a = new myClass(1);
console.log(a);
a.x += 20;

最佳答案

立即,但对象的状态是在您在控制台中手动展开对象时获取的 - 而不是在记录日志时。

当您在控制台中展开它时,添加 20 的代码已经执行了很久以前(相对而言)并且它显示为 x: 21

关于javascript - console.log 什么时候执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13218273/

相关文章:

java - Android/Java - 来自类的通信返回 java.lang.nullpointerException

python - 哪个记录器在gunicorn 中输出这个?

java - 如何在每次方法执行时创建(和写入)新的日志文件?

javascript - Sencha touch 应用加载掩码

javascript - 将数组中的字符串文字转换为变量名

javascript - 删除 dynamodb 中的列表元素,索引是存储在变量中的值

php - 将日志文件添加到 ffmpeg

javascript - php mysql 后台进程

c# - C# 中的复杂类层次结构

c# - 如何在项目中使用 C# 类库?