본문 바로가기

JavaScript16

[JavaScript] 객체 복사 오늘은 객체를 복사하는 방법에 대해 알아보는 시간을 갖도록 하자. 프로젝트 진행 중 객체를 복사해서 똑같은 객체에 하나의 프로퍼티 명만 바꿔야 되는 경우가 생겼다. prototype link도 모두 복사해야 했으므로 예비 객체를 하나 두어 복사하고 옮기고 복사하고 옮기고를 반복하여 5라인 짜리 코드를 만들었다.//////////////////////////////////////////////////WARING//////////////////////////////////////////////////////////내공이 부족하면 이런 삽질을 하게 됩니다...1 2 3 4 5 6var dataProto = data[0]["a"].__proto__; var tempDataProto = data[0].__prot.. 2015. 1. 26.
[JavaScript] 네임스페이스패턴 javascript에서는 전역유효범위를 지저분하게 하는것을 좋은 패턴이라 하기 어렵다.코딩을 하다보면 라이브러리를 가져다 쓸 경우가 많이 생긴다. 그러다보면 타인이 작성한 코드가 내 코드에 들어와있을텐데만약 전역스페이스에 동일변수가 선언되어 있고 유용하게 쓰여지고 있었다면 충돌로 인해 큰 오류를 만들어낼 수 있다. 그 대신 전역객체를 하나 생성하고 그 안에 전부 때려박는걸 네임스페이스패턴이라고 한다. // 권장하지 않는 안티패턴 1 2 3 4 5 6 7 8 9 10 11//생성자 함수 2개 function Parent() {}; function Child() {}; //변수 1개 var kid = 4; //객체 2개 var module = {}; module.data = { a:1, b:2 }; var .. 2015. 1. 26.
[JavaScript] 옵저버 패턴(Observer Pattern) 옵저버패턴! or 감시자 패턴 or 커스텀이벤트 or 구독자패턴 이라고 불린다. ㅋㅋㅋ 아주 유사패턴명이 수두룩하네. 흔히 이벤트로 보던 mouseover , keypress와 같은 브라우저 이벤트가 옵저버 패턴의 예들이다. 옵저버 패턴을 사용하는 이유는 객체간의 결합도를 느슨하게 하기위함이다. 객체들의 결합도가 높을수록 유지보수는 아주아주아주 힘든 작업이 된다. 어떤 하나의 객체가 다른 객체의 메소드를 호출하는 대신, 객체의 특별한 행동을 감시하고 있다가 행동이 일어나면 알림을 받는다. Sample신문구독 신문사가 신문을 발행한다.독자가 특정 신문사에 구독을 신청한다.신문사가 영업하는 한 구독 및 해지가 발생한다. 월간신문과 일간신문이 있다고 정의한다. 신문사의 이름은 newyorkTimes라 한다.(.. 2015. 1. 26.
[JavaScript] Module 패턴. 모듈패턴 The Module Pattern오늘은 자바스크립트의 모듈패턴!!! 에 대해 글을 써보도록 하지.나도 공부하는 초초초초초 왕 초보 개발자 이므로 쉽게 되도록 쉽게 이해한 내용을 바탕으로 설명함. 모듈 패턴의 정의!모듈패턴은 전에 포스팅했던 네임스페이스패턴처럼 전역스페이스를 더럽히지않게 하기위해 (다른 스크립트 파일과 객체명이 겹치는 불상사를 줄이기 위해) 사용하는 패턴이다.음 다른 언어를 선행했던 개발자라면 접근 제한자에 대해 알고있을 거야. private / public 등등.근데 자바스크립트에서는 접근 제한자는 존재하지 않지.접근 제한을 구현하기 위해 사용하는게 모듈 패턴이기도 해. 모듈 패턴을 이해하기 위해서는 클로저와 컨텍스트 정도는 알고있어야 해.클로저를 어느정도 이해했다면 모듈패턴을 구현한 예.. 2015. 1. 26.