본문 바로가기
컴퓨터이야기/JSON

연관 배열 테스트

by 변화지시자 2010. 12. 16.
반응형




결과 값===========================================================================

그냥 함수 = 30

함수를 변수처럼 = 30

연관 배열 연장1 = 200,300

연관 배열 연장2 = 200

연관 배열 연장3 = 30

연관 배열 연장4 = a

===================================================================================

값이 30이 나온 3가지 함수에 대해서 주목하자

그냥 함수 = 30 함수를 변수처럼 = 30

함수 호출하는 방식 이 완전히 똑같다.

함수명(값) ==> plus(20), plus2(20) 처럼 호출

하지만 연관 배열 연장3을 보면

변수명.함수명(값) ==> plus3.test(20)

점 연산자 어디서 많이 본듯한 느낌이 들지 아니한가?

무슨무슨string.length 이런거 말이다...

암튼 연관 배열을 이용하면 저렇게 점 연산자를 만들수 있다는 걸 기억하자~

하지만 점 연산자를 이용해서 너무 남용을 하지 말아야 한다.

간혹 내가 모르는 사이에 이런 함수?메쏘드가 추가 되었나 버전업 되었나 하는 생각이 들수도 있고

잘못 사용하게 될 수도 있으니 주의하자

다음을 보면

1번 트림 함수
  <SCRIPT LANGUAGE="JavaScript">
  <!--
 function trim(value){
  return value.replace(/(^\s*)|(\s*$)/g,"");
 }

 txt=" <앞과 뒤의 공백> ";
 document.write("|"+txt+"|<br>")
 txt=trim(txt);
 document.write("|"+txt+"|<br>")
  //-->
  </SCRIPT>

2번 트림 함수 프로토 타입
  <SCRIPT LANGUAGE="JavaScript">
  <!--
 String.prototype.trim = function(){
  return this.replace(/(^\s*)|(\s*$)/g,"");
 }
 txt=" <앞과 뒤의 공백> ";
 document.write("|"+txt+"|<br>")
 txt=txt.trim();
 document.write("|"+txt+"|<br>")
  //-->
  </SCRIPT>

결과===============================================
| <앞과 뒤의 공백> |
|<앞과 뒤의 공백>|
====================================================

둘다 결과는 같다. 위에 글씨는 앞뒤로 공백이 있고 2번째 글씨는 공백이 없다.

프로토타입, 연관배열 처럼 만들면 XXX.trim() 이렇게 사용 되므로

trim() 이런 것이 실제로 있는 것인지 아니면 개발자가 독자적으로 만든 것인지 혼동의 우려가 있다

그러니 주의해야 된다