什么时候的console.log得到执行?(When does console.log get ex

2019-07-03 12:56发布

我想使用的console.log调试一些非常简单的Javascript,但它的输出值,该电话的console.log ,不会改变,直到变量,当变量是“阶级”的成员(铬22,火狐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

如果当它存在时,该日志被称为控制台不记录的值,当它终于决定记录的值,我怎么能解决这个!?

FWIW这里是代码的全部:

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;

Answer 1:

不是在记录的时间-立即,但是当你在控制台手动展开对象对象的状态被取出。

到时候你在控制台展开它,加20的代码已经执行很久以前(相对而言),它说, x: 21



文章来源: When does console.log get executed?