我试图使用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
如果控制台在调用日志时不记录该值的存在,则它最终何时决定记录该值,我该如何解决这个问题?
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;