2013. 11. 25.

자바스크립트의 객체를 반복문(for)으로 필드들 값 출력 해보기.

다른 프로그래밍 언어와 다르게 자바스크립트는 class문이 없는 프로토타입 기반의 언어입니다. 자바나 PHP에서 처럼 객체 정의하고 사용 하는데 익숙한 분들은 아마 저처럼 햇갈려 하시지 않을까 하는 생각이 듭니다. 자바스크립트 문법이 아직 익숙하지 않아 객체 관련해서 코드를 보는데 애를 좀 먹었습니다. 사실 객체니 뭐니 해봤자 변수와 함수들 모아놓은게 객체 일 뿐이니 간단하고 쉽게 생각 합시다.

객체를 생성하는데 여러가지 방법이 있습니다. 아무래도 자세히 알려면 책을 한 권 구입 해야할 것 같네요. 여기선 포스팅 제목처럼 객체 내 필드들의 값을 찍어 보는 방법에 대해서만 알아 보도록 합시다.

var o = {
    r: 'some value',
    t: 'some other value'
};

var o = new Object();
o.r = 'some value';
o.t = 'some other value';

동일한 객체를 만드는 두 가지 방법 입니다. 좀 더 찾아보니 객체 생성하는 방법들 부터 다양한게 머리가 지끈 지끈 하네요... 객체 내부를 돌아다니는 문법은 자바(Java)에서 향상된 for문 이라고 불리는 구문과 왠지 닮아 보입니다.

//Java 향상된 for 문
for( String name : nameArray ){
    System.out.println( name );
}

nameArray[1]을 name에 대입시켜서 반복문이 한 번 돌아가고, nameArray[2]를 name에 대입시켜서 또 반복문이 한 번 돌아가고 이렇게 배열의 끝까지 탐색 합니다. 자바스크립트에서도 이와 비슷한 느낌의 구문이 있네요. 물론 배열을 탐색하는 것과 객체 내 필드들을 탐색 하는 것은 다르긴 하지만, 자바스크립트가 워낙 그런 경계들이 애매모호한 느낌이라... 저만 그렇게 느끼는 건가요!? 아무튼...

for (myKey in myObj){
    alert ("myObj["+myKey +"] = "+myObj[myKey]);
}

myObj 객체 안의 녀석들을 myKey에 하나씩 담아 줍니다. 녀석이라고 표현한 이유는 저기서 받아오는 myObj는 단순한 변수 일수도 있고, 함수 이기도 하고 다른 객체 일 수도 있어서 딱히 무엇이라고 할 수가 없네요. 역시 경계선이 애매모호 합니다.


스택오버플로우 출처.
http://stackoverflow.com/questions/418799/what-does-colon-do-in-javascript

댓글 없음 :

댓글 쓰기