javascript的this是一個十分動態的東西,要小心的使用
例如:
function foo(){
this.varA = "haha";
function bar(){
alert(this.varA);
}
}
var myFoo = new foo();
然後 html 裏讓一個 div onclick之後觸發 foo.bar()....:
如果真的click 下去,alert 出來不會是"haha"會是undefined,神奇吧。原因是當下的this已經不是我們預想的foo,而是div啦…
這種事真的蠻討厭的。一不小心就會忘記,不然就是要變成…
function foo(){
this.varA = "haha";
var me = this;
function bar(){
alert(me.varA);
}
}
結果就會是正確的…
為什麼? 不要問我…="=
2007年9月30日 星期日
2007年9月13日 星期四
偵測memory leak
完全靠人腦偵測memory leak 是一種非人的行為,絕對會起笑
這次要和legacy code 的memory leak 打架,眼看著工作管理員上的記憶體使用量直衝雲霄,實在是給它有點沒力。
找到了 Visual Leak Detector ,同樣的,安裝和食用都很方便,照它的readme 裝好以debug 模式編譯,再用啟動debug;跑完後會出一份很清楚的報表,包括那裏leak, stack trace等等,很方便。
PS 以上是使用Visual C++ 6.0
這次要和legacy code 的memory leak 打架,眼看著工作管理員上的記憶體使用量直衝雲霄,實在是給它有點沒力。
找到了 Visual Leak Detector ,同樣的,安裝和食用都很方便,照它的readme 裝好以debug 模式編譯,再用啟動debug;跑完後會出一份很清楚的報表,包括那裏leak, stack trace等等,很方便。
PS 以上是使用Visual C++ 6.0
訂閱:
文章 (Atom)