2014/04/14 - [프로그래밍/Java Script] - [Java Script] URL 파라미터 값 읽어오기-1
두번째 방법은 더 간단하지만 java script 의 함수 사용법의 이해가 필요한 방법이다.
일단 URL 파라미터 값 읽어오는 방법에 대해 보자.
>> 소스보기
(function($) {
$.QueryString = (function(a) {
if (a == "") return {};
var b = {};
for (var i = 0; i < a.length; i++)
{
var p=a[i].split('=');
if (p.length != 2) continue;
b[p[0]] = decodeURIComponent(p[1].replace(/\+/g, " ")); //공백으로 변환 후 디코딩
}
return b;
})(window.location.search.substr(1).split('&')) //파라미터 정보만 분리
})(jQuery);
함수 호출 방법 ▼
2014/07/01 - [프로그래밍/Java Script] - [Java Script / jQuery] URL 파라미터 값 읽어오기-2 - 호출 방법
>> JavaScript 함수 구조
처음 저 함수 구조를 보고 음... 이거 어떻게 해석하지.. 라는 생각이 들었다.
일단, window.location.search.substr(1).split('&') 이부분이 먼저나와야하는데 뒤에나오네??
function 앞에 왜 '(' 가 있는거지??
function 안에 function이 또있네?? 무한루프인가?? 왜??
뒤에 '(jQuery)' 는 뭐지??
위에 구조를 쉽게 고쳐보면
function() { var a = function() { } } |
내부 함수를 실행하기 위해서는 a() 를 호출해야한다.
여기서 변수를 없애면 (function(){ })() 이렇게 되는 것이다.
이것을 이용해 위의 예제 함수를 다시 고쳐보면
(function() { var a = (function() { })() })() |
이렇게 되는 것이다.
그렇다면,
a() 와 (a)() 의 차이점은 무엇일까?
두개의 차이점은 없고 모두 함수를 호출한다.
(a(a(a(a))))() 이것은 어떻게 호출될까?
결과를 먼저 보면 ,
어떻게해서 이런 결과가 나올까?
(a(a(a(a))))() 를 분해해보면
var a1 = a() var a2 = a(a) var a3 = a(a2) var a4 = a(a() a4() |
이런 구조인 것이다.
아하아하! 이제 좀 알겠다.
아직 갈길이 멀지만 점점 Java Script와 친해져가는거 같아 조으디조으디♪
' └ Java Script' 카테고리의 다른 글
[Java Script] Trim, Ltrim, Rtrim 구현 (정규식 이용) (0) | 2014.04.24 |
---|---|
[Java Script / jQuery] 입력값 받아와 get방식 URL 파라미터로 넘겨주기 (0) | 2014.04.16 |
[Java Script] URL 파라미터 값 읽어오기-1 (0) | 2014.04.14 |
[Java Script] 년도, 월을 입력받아 그 달의 마지막 날 구하기3 - 응용_1 (0) | 2014.04.12 |
[Java Script] 년도, 월을 입력받아 그 달의 마지막 날 구하기3 - 응용 (0) | 2014.04.12 |