TIL 20210930

e·2021년 9월 30일
0

TIL : js

목록 보기
3/7
post-thumbnail

new연산자와 생성자 함수

객체 리터럴 {...} 을 사용하면 객체를 쉽게 만들수 있음
개체를 여러개 만들어야 할 때...
'new'연산자와 생성자 함수를 사용하면 유사한 객체 여러개를 쉽게 만들수 있음.

생성자 함수

생성자 함수constructor function 와 일반 함수에 기술적 차이는 없으나
생성자 함수엔 두가지 관례가..

  1. 함수 이름의 첫글자는 대문자로 시작
  2. 반드시 'new'연산자를 붙여 실행
function User(name) {
	this.name = name ;
    this.isAdmin = false;
}

let user = new User('9ing');

alert(user.name); // 9ing
alert(user.isAdmin); // false

new연산자와 함께 호출하면 내부에서 this가 암시적으로 만들어지고,
마지막엔 this가 반환됨.

생성자와 return문

생성자 함수엔 보통 return문이 없어..
반환할 것들은 모두 this에 저장되고, 자동으로 반환되기 때문에
명시적으로 써줄필요 없음..

그런데 return문 이 있다면?
=> 객체를 return 하면 this 대신 객체 반환
=> 원시형 return 하면 return문 무시!

function BigUser() {
	this.name = 'apple';
    return { name : 'cherry' }; // this가 아닌 새로운 객체 반환함
}

alert( new BigUser().name ); // cherry
function SmallUser() {
	this.name = 'apple';
    return; // this를 반환.
}

alert(new SmallUser().name); // apple
profile
🌱 무럭무럭 자라자

0개의 댓글