본문 바로가기

클로저 클로저(closure)내부함수가 외부함수의 맥락에 접근할 수 있는 것 어떤 함수 안에서만 사용되는 함수를 inner함수로 정의외부에 정의한다면 응집성이 떨어지고 다른 곳에서도 호출 가능하기에 문제점이 발생외부함수 바깥에서는 외부함수의 변수를 접근을 막고 내부함수는 외부함수의 지역번수를 참조할 수 있다. 클로져는 private 변수를 생성할 수 있다. (외부에서 함부로 변경할수 없도록)인자로 받은 변수는 내부함수에서만 쓰이고 직접 변경 할수 없다. (내부 함수를 통해서만 접근 가능) private변수가 필요한 이유소프트웨어가 커지며 많은 사람이 코드에 접근하게 된다. 누구나 변수를 접근하여 변경할 수 있게 된다. 소프트웨어가 망가질 확율이 크다. 클로저 구현시 실수하기 쉬운 상황var arr = []for.. 더보기
bind, apply, call 정리 bind 함수함수가 실행될때 함수를 특정 객체의 스코프 체인에 묶어버리는 기능이다.Function.prototype.bind = function(scope) {var _function = this;return function {return _function.apply(scope, arguments);}}[참고]http://sicheol.tistory.com/9#패턴을 사용하거나 프레임웍 환경에서라면 좀더 직관적인 코딩을 위해 bind메소드가 필요 var Controller = function(){} Controller.prototype = { showMessage: function(){console.log('binding is fantastic');} }; var controller = new Contr.. 더보기
스택 Stack선입후출, 후입선출 의 자료구조배열 스택배열 형태는 최대 넣을수 있는 stack이 갯수가 정해져 있음최대 개수 이상의 스택을 넣을수 없다. 링크드리스트 스택최대 갯수가 정해져 있지않고 링크드 리스트 형태로 계속 연결이 된다. [참고] http://blog.eairship.kr/210 더보기