2016-12-23 49 views

回答

9

不存在(*)。 const聲明不會成爲全局對象的屬性。

你需要找到另一種解決方案,如創建一個對象,並凍結它(使它不可改變的)

const TAB = Object.freeze({ 
    OPEN: 0, 
    CLOSE: 1, 
}); 

console.log(TAB[action]); 

我要說的卻是依靠全局變量(即var)成爲無論如何,全局對象的屬性都是糟糕的設計。如果你想按名稱查找某個東西,你應該有一些地圖或記錄(如上所示)。


*:嗯,你可以使用eval ...

0

對於你目前的代碼,你可以使用evalBut take care!,它應該是這樣的:

const OPEN_TAB = 0; 
 
const CLOSE_TAB = 1; 
 

 
let action = 'OPEN'; 
 

 
console.log(eval (action+'_TAB'));


另一種方式是假定一個新對象的const,那麼你可以很容易地訪問const像常見的方式,你可以訪問到JavaScript對象:

const TAB = { 
 
OPEN:0, 
 
CLOSE:1 
 
}; 
 

 

 
let action = 'OPEN'; 
 

 

 
console.log(TAB[action]);