언어/자바스크립트

Object 객체를 간단하게 map 객체처럼 사용하기.

타울 2010. 10. 18. 22:35
 
 자바스크립트는 맵객체가 없다.
하지만 Object 를 사용하면 맵 객체처럼 사용이 가능하다.
 
var obj = new Object();

obj["key"] = value;

if( obj.hasOwnProperty(value) ) // true
obj 에 해당 프로퍼티를 가지고 있다면 true를 반환한다.


aa();

 function aa(){
  var type1 = {};
  type1.a = 'A';
  type1.b = 'B';
  getPropertyList(type1);
   
// json 형태의 객체
  var type2 = {'a':'type2입니다.', d:'d'};
  getPropertyList(type2);
   

  var type3= {};
  type3['key'] = "type3";  
  getPropertyList(type3);
 }
 
 function getPropertyList(obj){
  var propertyStr = "";  
  for (p in obj) {
   propertyStr += p  + ": " + obj[p] +" ,";
  }
  alert(propertyStr);
 }



지금까지는 값을 넣어 보았습니다!

동일한 방식으로 함수도 넣고 빼서 호출이 가능합니다.

aa();

 function aa(){
  var func = {};
  
  func.f = function(){
   alert('함수1');
  };
  func.f();
  
  func['a'] =  function(){
   alert('함수2');
  };
  func.a();
  
  func.j = {'f':function(){alert('함수3')}};  
  func.j.f();
 }

 

 


간단하지만 응용하면 배열에 담아서 loop 와 if문을 이용하는 로직을 대체할수 있습니다.
테스트는 나중에 해보겠습니다.