2016年12月6日 星期二

LimeJS : 使用 this 產生 WARNING

在 LimeJS 中使用「build」參數來產生 .js 檔時,常常會出現一堆類似底下的「WARNING」:


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 的結果了。


沒有留言:

張貼留言

 
© 2009. Design by Pocket