2017-05-24 79 views
0

我正在嘗試爲我的React組件創建唯一的ID。我創造了這個模塊:在NodeJS模塊中創建一個全局計數器

var _uid = 0; 

function getUid(): { 
    ++_uid; 
    return `_uid_${_uid}`; 
} 

export default getUid; 

希望的_uid將每個模塊函數調用時增加,但它始終是1.如何實現每個需要的模塊時上漲了嗎?

+0

'VAR _uid:數量= 0;'是不是正規的JavaScript。你是否指我使用其他語言? – jfriend00

+0

@ jfriend00它是Flow,但它編譯爲JavaScript。對不起,我忘了那裏的類型註釋! – Victor

+0

然後請用適當的語言標記它。 – jfriend00

回答

0

Java腳本的關閉可以幫助您有:

var getUid = (function(){ 
     var _uid: number = 0; 
     return function(){ 
     ++_uid; 
     return `_uid_${_uid}`; 
     } 
    })(); 

export default getUid; 
+1

你能解釋一下嗎?我的意思是爲什麼這個工作? – Victor

+0

這裏_uid只發一次,因爲它在匿名函數中,我調用它一次,它將內部函數返回給getUid,因此在此之後,當您需要getUid時,它只會增加現有值 –

+0

不清楚這是如何做不同的事情比OP的原始代碼。 – jfriend00