멋쟁이 사자처럼_1213

jojo·2021년 12월 13일
1

멋쟁이사자처럼

목록 보기
35/39
post-thumbnail

수업

TDD

모듈 패턴

값을 은닉하기 위해, 클로저 공간을 만든다.
외부에서 접근할 수 없지만 사용할 수 있게 하고 싶다.
그래서 이 값이 연결된 함수들을 return을 이용해서 함수 밖으로 빼낸다.
함수 안에서는 밖에것도 접근이 가능해서, 얘네를 리턴으로 밖으로 빼줘도 여전히 연결이 가능하다.
그래서 이렇게 폐쇄된 공간을 만든게 모듈 패턴.

function Person() {
    let age = 35;

    return {
        getAge: function(){return age},
        setAge: function(data){age = data}
    }
}

const person = Person();
console.log(person.getAge());

사용자 정의 타입 패턴

얘는 인스턴스를 만들기 위한 함수
값이나 프로토타입을 상속받는 새로운 자식이다.
new라는 키워드. 인스턴스를 만드는데, 생성자 함수의 this가 가르키는 것을 인스턴스로 바꾼다.
원래는 자신을 호출한 객체를 가르키는데, 인스턴스를 가르키게 된다.

2015이전에는 클래스를 만드는 방법이었음

생성자 함수는 대문자로 시작.
생성자 함수에서의 this는 인스턴스를 가르킨다.

function PersonType() {
    this.age = 35;
}

PersonType.prototype.getAge = function() {
    return this.age;
}

const instancePerson = new PersonType();
console.log(instancePerson.getAge());

모듈 + 사용자 정의 타입

function PersonType2() {
    let age = 25;

    function innerPersonType() { }

    innerPersonType.prototype.getAge = function() {
        return age;
    }

    return innerPersonType;
}

const Person3 = PersonType2();
const person3 = new Person3();
console.log(person3.getAge());

IIFE(즉시실행함수) 패턴으로 만들어보기

폐쇄된 공간 만들려고 안에 함수를 썼는데, 리턴함수로 밖으로 뺐는데,
그 과정을 즉시실행함수로 하나 거른거다. 어차피 실행했어야 되니까 처음할 때부터 실행해버리자!

const PersonType3 = (function PersonType2() {
    let age = 25;

    function innerPersonType() { }

    innerPersonType.prototype.getAge = function() {
        return age;
    }

    return innerPersonType;
})();

const personType3 = new PersonType3();
console.log(personType3.getAge());

생각

당장 많은 지식을 넣으려고 하다보니, 취업에 대한 생각이 저 멀리 가버리는 것 같다. 아직 준비가 안 됐다고 생각하면서 미루게 된다. 물론 실제로도 준비가 안 된 것은 맞지만, 할 수 있는 만큼이라도 조금씩은 준비를 해야겠다.


느낀점

고칠점

  • 주말 활용... 주말에는 왜 공부가 힘들까..? 주말에 스터디라도 하나 들어가야 하나? 쉬기는 정말 잘 쉬어서 오늘 컨디션이 좋기는 했다.
  • 조금 더 몰입하자

계획

  • 조금씩 이력서 만들어보기
  • 체력관리 열심히 하기
profile
2021.11~

0개의 댓글