console.log を使用して非常に単純な Javascript をデバッグしようとしていますが、変数が「クラス」メンバー (Chrome 22、Firefox 16) である場合、console.log 呼び出しの後まで変更されない変数の値を出力しています。
私が期待することの例は、次のようになります。
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;