2016-04-27 25 views
1

谷歌關閉編譯器會抱怨這樣的代碼:警告 - 危險使用全局這個對象?

function Message() { 
    this.message = ""; 
    this.nickname = ""; 
    this.time = 0; 
    this.my = false; 
}; 

什麼危險嗎?它應該如何創建「對象」?現在我做

var m = new Message(); 

得到一個「類型」消息的初始化對象。

回答

3

嘗試註釋的代碼來告訴編譯器,這是一個構造函數:

/** 
* A message 
* @constructor 
*/ 
function Message() { 
    this.message = ""; 
    this.nickname = ""; 
    this.time = 0; 
    this.my = false; 
}; 

https://developers.google.com/closure/compiler/docs/js-for-compiler#overview

+0

是的,這是一種選擇,但我感興趣的問題的根源。谷歌封閉編譯器在那裏發現了哪些犯罪? – pavelkolodin

+1

編譯器認爲你指的是窗口對象,而不是Message的實例,因爲它不知道Message是否是構造函數 – Ozrix

+0

編譯器的一個基本特性是類型檢查,這就是爲什麼你需要註釋。 – Ozrix

相關問題