WARNING - dangerous use of the global this object ......
WARNING - dangerous use of this in static method ......
追了一下程式碼,這些訊息主要是發生在我自己寫的元件中使用「this」。因為編譯完的程式仍然可以正常執行,該有的效果都有出來,LimeJS 用了幾年了,哈!一直沒理它,不過,追求完美的我,心中仍然有一點芥蒂。
剛剛用關鍵字去搜尋了一下,看到底下這個討論串,頓時豁然開朗:
LimeJS 主要是架構在 Google 的 Closure Compiler 上,而問題就出在我沒照人家的規定,在 constructor function 的前面加上宣告 constructor 的註解,以致在 complie 的時候被認為會出問題而警告,只要 constructor function 的前面至少加上以下的註解 (JSDoc tags) 即可:
/**
* @constructor
*/
那如果不是 constructor function,可以單獨指出「this」是哪一種物件,例如:
/**
* @this {lime.Sprite}
*/
至於還可以使用哪些「JSDoc tags」,可參考 Closure Compiler 網站上的說明:
改完,哇!終可以不用看到一堆 WARNING 的結果了。
沒有留言:
張貼留言