4
我想調試一些非常簡單的Javascript使用console.log,但它的輸出值的變量,直到後 console.log調用,當變量是'類'成員(Chrome 22,火狐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;
這幾乎是有道理的,鉻,我不得不手動展開。對於FF,它已經擴大了,結果也一樣......我現在看到了一些相關的問題,因爲某些原因在我提出問題時沒有顯示爲建議 - 看起來答案是將對象串聯起來。我真的認爲'log'這個名字對於這個功能來說是不好的選擇,因爲日誌通常是過去事件和狀態的記錄。至少我不會浪費一個小時試圖弄清楚到底發生了什麼。儘管如此,問題解決了,謝謝! – iforce2d
嘿,你是什麼意思手動擴大對象? –