2016-09-28 90 views
0

我有一個實例化了一次的類(LiveScript),但它的render方法被多次調用。在render方法創建的每個對象必須具有唯一關鍵的是保持跨越render所有調用相同:每次調用函數時都生成相同的數字

class Test 
    -> 
    console.log 'constructor, called only once' 

    render: -> 
     test = {key: 4124312} 
     test1 = {key: 234897} 
     test2 = {key: 87234} 

這工作,但,而不是硬編碼,我寧願生成它的關鍵。使用隨機數字將不起作用,因爲這將在每次調用render時生成一個新密鑰。在這個類之外擁有一些關鍵字列表並彈出它們的項目將不起作用,因爲在render中創建的對象的順序可能會改變。任何想法是否以及如何生成密鑰?

+0

你試過生成與關鍵隨機數在構造函數中? – maioman

+0

這看起來像是使用['Symbol's](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol)的好例子 - 特別是因爲你看起來不像關心標識符值 –

+0

爲什麼不在ctor中生成號碼? – Ven

回答

0

生成它們是一回事 - 它聽起來像是需要一種方法來使用在執行上下文中不會更改的鍵來保持唯一對象。這稱爲持久性。

在JS,你可以使用對象文本來存儲你的對象,其中在存儲對象中的每個條目的關鍵是你的存儲對象的唯一關鍵:

{ 
    1234: { name: "test", key: 1234 }, 
    2345: { name: "test1", key: 2345 }, 
    3456: { name: "test2", key: 3456 } 
} 
相關問題