let user = {
name: 'Mike',
age: 30,
}
↑ 이렇게 만드는 것
첫 글자 → 대문자
( 어떤 함수라도 new를 붙이면 알고리즘이 동일하게 동작 )
함수 호출 방법 : new
연산자
fucntion User(name, age) {
this.name = name;
this.age = age;
}
let user1 = new User('Mike', 30);
let user2 = new User('Jane', 22);
let user3 = new User('Tom', 17);
fucntion User(name, age) {
// this = {}
this.name = name;
this.age = age;
// return this;
}
new 함수명();
new 함수명();
을 실행하면
this = {}
빈 객체({}
)를 만들고 this
에 할당
this
에 프로퍼티 할당
this.name = name;
this.age = age;
this = {}
& return this;
은 코드에 없음그냥 함수 실행
undefined
반환 (return
되는 것이 없어서)
그 값이 변수에 할당 됨 (만약 변수에 할당 했으면)
ex. const user3 = User('Mike', 30)
== user3는 undefined
function User(name, age){
this.name = name;
this.age = age;
this.sayName = function(){
console.log(this.name) // this는 .앞의 user5
}
}
let user5 = new User('Mike', 30)
user5.sayName() // "Mike"
참고