값 은닉을 위해. 클로져를 이용한 은닉
생성자 함수
-> 값을 공유 가능 ( 인스턴스를 통해서도 똑같이 ) =>메모리 절약됨 (값 공유로 인스턴스 만들때마다 변수 새로 만들지 않아도 된다)
new 사용하면 this가 인스턴스를 가리킨다. (자바스크립트에서 2015이전까지 클래스 만든 방식)
전역공간에 있는 변수면, this는 window를 가리킨다.
클로저 함수
let person2 = {age: 35};
let person3 = {age: 45};
function PersonType2() {
let age =25;
function innerPersonType() {}
inner
함수 밖에서는 사용 못하기 때문에, person함수 밖으로 빼내기 .
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());
즉시 실행함수.
한 번 실행이 되야 밖으로 빼낼 수 있다.
const PersonType3 = (function() {})(); (=> 즉시실행함수는 함수이름 없어도 된다)
const personType3 = new PersonType3();
TDD 테스트할 떄 객체지향으로 많이 함.
// 원시값으로 만들면 인스턴스 간에 값 공유가 불가능합니다.
option
//throw 사용자 정의 예외를 만들고 프로그램 종료
spyOn(viewManager, 'changeVallue')
(spyOn과 toHaveboon 함수 함께 짝!)
updateView => 화면에 반영!
(프로젝트&취업) 당연히 가능하게 설계를 했어요. 중요한 건 기여도에요. 이전 프로젝트들도 완전히 자기것으로 만드셔야 해요. (오후에 다시) 즐거운 수업 되세요