2016-12-28 134 views
0

我試圖創建一個類來更好地組織我的代碼,我決定的Javascript:設置對象變量內的對象實例

var MyClass = { 

} 

我目前正在運行的走對象字面路線到遷移的一些問題我的功能雖然,以前我有全局範圍變量通道例如設置爲一個對象實例。有沒有一種方法仍然可以在類中的JavaScript中做到這一點,而無需將對象移動到全局範圍中?

var Prime = { 
    Channel: new __Prime__Channel(), 

    //The object in question 
    __Prime__Channel: function() { 
     this.Property = Value; 
    }, 
} 

,這將引發第2行

在全球範圍內

未定義參考__Prime__Channel(),你可以做

var Channel = new __Prime__Channel(); 

function __Prime__Channel() { 
     this.Property = Value; 
} 

沒有任何錯誤

+1

「仍然這樣做」 - 做什麼? – Igor

+0

目前還不清楚你在問什麼。你能否以不同的方式顯示舊式工作代碼和*相同功能? NB:'var Prime {'是無效的語法。 – trincot

+0

如果你運行該 __Prime__Channel未定義 林問如果有類變量設置爲分類功能 – HyperCrusher

回答

0

一個對象沒有課程,請確保您使用的是正確的術語。

一個對象文本it is not possible to do what you want,唯一的辦法就是

var Prime = { 
    __Prime__Channel: function() { 
     this.Property = Value; 
    } 
} 
Prime.Channel = new Prime.__Prime__Channel(); 

然而,也許對象文本是錯誤的花樣呢。如果您想避免全局變量,請查看模塊模式和IIFE。

+0

謝謝,我的項目受限於JavaScript解釋器,它相當過時並且我無法控制,所以我堅持使用對象文字作爲「類」,對於術語混淆感到遺憾 – HyperCrusher

+0

Nah,自ES1構建器和原型以來,您可以擁有「類」,但「Prime」確實不是。 'Prime .__ Prime__Channel'可能被稱爲「班級」。 – Bergi

相關問題