2017-05-20 3 views
0

현재 코드를 리팩토링하고 있으며 REFERENCE_LIST이라는 오브젝트 배열을 다른 파일로 내보내려고합니다.자바에서 변수를 참조하는 올바른 방법

reference.js

export const REFERENCE_LIST = [ 
{name:"TypeA", foodList:foodAList}, 
{name:"TypeB", foodList:foodBList} 
] 

export const foodAList = ['apple', 'orange', 'banana'] 
]; 

export const foodBList = ['meat', 'fish'] 
]; 

그러나 REFERENCE_LIST에서 foodList 필드는 "정의되지 않은"항상. 이 배열을 잘못 참조하고 있습니까?

+0

예 foodList가 선언되거나 할당되지 않았기 때문에 콘솔을 사용하려고하면 콘솔이 올바르지 않으므로 콘솔이 올바르지 않습니다. – Dennisrec

+0

그리고 이름 필드가 작동하는 이유는 이것이 정상적인 문자열이기 때문입니다. – Dennisrec

답변

3

JS의 변수을 참조 할 수 없습니다. 당신은하지만, 객체 값을 참조 할 수 있습니다 -하지만 이러한 개체는 먼저 작성해야 : 창조의 순서는 중요하지 않습니다 어디 또한 게터를 사용할 수 있습니다

export const foodAList = ['apple', 'orange', 'banana']; 
export const foodBList = ['meat', 'fish']; 

export const REFERENCE_LIST = [ 
    {name:"TypeA", foodList:foodAList}, 
    {name:"TypeB", foodList:foodBList} 
]; 

: 심지어

export const REFERENCE_LIST = [ 
    {name:"TypeA", get foodList() { return foodAList; }}, 
    {name:"TypeB", get foodList() { return foodBList; }} 
]; 

그러나 그것들은 상수가 초기화되기 전에 당신이 그것들을 평가할 때 예외를 던질 것입니다.

+0

아, 네, 감사합니다, 고마워요! – lost9123193