function func(){
return this;}
func()
const obj = {
method(){
return this;}}
obj.method()
function Func(){
return this;}
const instance = new Func();
-파라미터가 여러개라도 파라미터의 순서가 있으면 파악하기가 쉬움.
순서가 상관없으면 객체 구조할당을 통해서 받기
통으로 객체를 받기보다는, 구조할당을 통해서 객체를 받을 것!
섹션 6참고
파라미터가 없을 때 에러 던지기
function createCAr({name, brand,color,type}){
if(!name){}
throw new Error('name is a required');
}
const required = (argName)=>{
throw new Error('required is'+argName);};
function createCarousel({
items = required('items'),
margin = 0,
center = false,
} = {}){
//={}는 객체가 없을때를 표현함.
...
}
return ...
//기존 코드
function sumTotal(){
return Array.from(arguments).reduce(acc,curr)=> acc+curr);
}
sumTotal(1,2,3,4,5,6,7,8,9,10);
//클린코드
function sumTotal(initValue, bonusValue,...args){
return args.reduce((acc,curr)=> acc+curr initValue);}
sumTotal(100,99,1,2,3,4,5,6)
...args
)function register(){
const isConfirm = confirm('회원가입에 성공했습니다.');
if(isConfirm){
redirectUserInfoPage();
}
}
function login(){
const isConfirm = conFirm('로그인에 성공했습니다.');
if(isConfirm){
redirectIndexPage();
}
}
//위와같이 두개로 나뉘어져있는 함수를
//콜백함수를 이용해서 아래와 같이 만들 수 있다.
function confirmModal(messaage, cbFunc){
const isConfirm = confirm(message);
if(isConfirm && cbFunc){
cbFunc();
}
}
function register(){
confirmModal('회원가입에 성공했습니다.',redirectUserInfoPage );
}
function login(){
confirmModal('로그인에 성공했습니다.',redirectIndexPage );
}
이번 예시는 진짜 쩔었다,,,
지금 하고 있는 프로젝트에서 완전 똑같은 구조의 컴포넌트가 있는데, 어떻게 줄일까 고민하다가 나중에 리팩토링하자 하고 넘어간 부분이였는데 콜백함수를 사용해서 간결하게 만들 수 있다니....그저 눈물뿐 ㅜㅜ