-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconstructor.js
More file actions
62 lines (54 loc) · 1.51 KB
/
constructor.js
File metadata and controls
62 lines (54 loc) · 1.51 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
// 객체공장 - constructor
// 아래처럼 객체를 개별 생성하는 방식은 아름답지 못하다.
let jerry = {
name: 'jerry',
first: 10,
second: 20,
third: 30,
sum() {
return this.first + this.second + this.third;
},
};
let harry = {
name: 'harry',
first: 10,
second: 10,
third: 10,
sum() {
return this.first + this.second + this.third;
},
};
console.log(jerry.sum());
console.log(harry.sum());
let date = new Date('2022-6-9');
// 생성자 함수 만들기
function User (name, first, second, third) {
return {
name: name,
first: first,
second: second,
third: third,
sum() {
return this.first + this.second + this.third;
}
}
}
// 생성자 함수를 만들 수 있는 또 다른 방법
// return {객체} 대신 함수 안에서 this.name = name 형식으로 값을 넘겨주도록 한다.
function User (name, first, second, third) {
this.name = name;
this.first = first;
this.second = second;
this.third = third;
this.sum = function () {
return this.first + this.second + this.third;
};
}
let james = new User('james', 10, 20, 30);
console.log(james);
console.log(james.sum());
let user1 = new User_other('hi', 10, 20, 30);
console.log(user1);
// function 안에서 return { 객체 } 를 하는 것과,
// 수업중에서처럼 function 안에서 return을 쓰지않고
// this.name = name 으로 만들어주는 것에는 어떤 차이가 있을까?