본문 바로가기

프로그래밍28

자바스크립트 클로저란? # 사전적 의미 클로저 ( Closures ) : 폐쇄 # 자바스크립트에서 클로저의 용도 자바스크립트에서는 프라이빗 메소드와 같은 방법을 제공하지 않는다. 하지만 클로저를 이용하면 프라이빗 메소드를 흉내낼 수 있다. 그래서 객체지향 프로그래밍의 정보 은닉과 캡슐화 같은 이점들을 얻을 수 있다. # 클로저란? 함수와 함수가 선언된 어휘적 환경의 조합. 내부함수가 외부함수의 맥락에 접근할 수 있는 것. var makeCounter = function() { var privateCounter = 0; function changeBy(val) { privateCounter += val; } return { increment: function() { changeBy(1); }, decrement: function.. 2020. 2. 13.
자바스크립트 호이스팅이란 자바스크립트에서 호이스팅(Hoisting)이 무엇인지 알아보기 전에 구글 번역기로 Hoisting의 뜻을 찾아보면 게양으로 나온다. 게양이란 높이 거는 일이다. 호이스팅에 대해 알아보니 딱 맞는 단어같다. 호이스팅은 자바스크립트가 실행될 때에 코드가 작성한 흐름대로 흘러가지 않고 변수 선언 부분이 위로 올라가는 것에대해 말한다. 모질라 웹 문서에 따르면 물리적으로 작성한 코드가 상단으로 옮겨지는 것은 아니라고 한다. 단지 컴파일 단계에서 변수 및 함수 선언이 메모리에 먼저 저장되기에 위치가 올라가는 것 처럼 보일 뿐이다. 예를 들면 아래 두 코드는 같은 결과를 보여준다. function catName(name) { console.log("My cat's name is " + name); } catName.. 2020. 2. 13.
함수 표현 방식 ( 표현식, 선언식, 익명함수 ) # 함수 표현식 var test = function(){ console.log("함수표현식"); }; # 함수 선언식 function test(){ console.log("함수선언식"); }; # 차이점 함수 표현식만 호이스팅에 영향을 받지 않는다. # 함수 표현식의 장점 클로져로 사용 콜백으로 사용 ( 다른 함수의 인자로 넘길 수 있음 ) # 익명 함수 이름이 없는 함수로, 즉시 실행이 필요한 경우 사용된다. (function () { console.log("test"); })(); 2020. 2. 12.
이클립스 SVN 오류 : username does not match lock owner 해결 이클립스에서 SVN을 사용하고 있는데 commit 하다가 해당 문구 출력되며 commit 안되는 문제 발생함. 원래 수정 시 lock 권한 빼앗아 올 수 있었는데 그 안내창도 뜨지 않아서 권한을 빼앗아 올 수 없었음. # 해결방법 해당 파일 폴더로 직접 들어가서 읽음전용으로 변경 후 적용. 그리고 이클립스에서 수정하면 권한 빼앗아 오는 안내창이 뜸. 권한 뺏은 후 svn team 메뉴 쪽 unlock 으로 lock 아얘 해제. 원인은 아직 모르겠다. 2019. 12. 18.