오늘의 나는 무엇을 잘했을까?
잠을 잘 자지 못해서 피곤한 하루였지만, 최대한 열심히 공부를 했다. 너무 피곤하면 중간에 잠시 눈을 붙이고 일어나 집중할 수 있는 컨디션을 만들자.
오늘의 나는 무엇을 배웠을까?
const obj = {
a: 10, // 프로퍼티
b: 20,
ex1() {
//...
}, // 메소드
};
const obj = {
name: value,
ex2() {
//
},
};
function createObj(value1, value2...) {
const obj = {
property1: value1,
property2: value2,
ex1() {
//
},
};
return obj
}
const obj1 = createObj(a, b);
new
연산자를 붙여 호출this
는 생성자 함수로 생성되는 해당 객체를 가리킴function User(name) {
this.name = name;
this.isAdmin = false;
}
let user = new User('MK');
console.log(user.name); // MK
console.log(user.isAdmin); // false
class
키워드 사용new
연산자를 붙여 객체 생성constructor
메소드는 객체가 생성될 때 실행this
는 생성되는 해당 객체를 가리킴class User {
constructor(name) {
this.name = name;
this.isAdmin = false;
}
ex1() {
console.log(`Is ${this.name} admin? : ${this.isAdmin}`);
}
}
const user = new User('MK');
console.log(user.name); // MK
user.ex1(); // Is MK admin? : false
class
를 잘 이해할 수 있도록 적절한 이름을 붙여줘야 함getter
와 setter
메소드로 표현let obj = {
get propName() {
// getter, obj.propName 을 실행할 때 실행되는 코드
},
set propName(value) {
// setter, obj.propName = value 를 실행할 때 실행되는 코드
}
};
getter
메소드는 obj.propName
을 통해 프로퍼티를 읽으려고 할 때,setter
메소드는 obj.propName = value
로 프로퍼티에 값을 할당하려 할 때 실행class Class2 extends Class1 {
constructor(a, b, c) {
super(a, b); // 부모 class의 생성자 실행
this.c = c;
}
ex1() {
//
}
}
class Class1 {
constructor(a, b) {
this.a = a;
this.b = b;
}
print() {
console.log('Hi');
}
}
class Class2 extends Class1 {
constructor(a, b, c) {
super(a, b);
this.c = c;
}
print() {
super.print(); // 부모 class의 메소드를 실행
console.log('Hello'); // 오버라이딩
}
}
instanceof
연산자true
false
값으로 반환class Math {
static PI = 3.14;
static getCircleArea(r) {
return Math.PI * r * r;
}
}
Math.PI = 3.141592; // 값을 수정하거나
Math.newFunction = function() {
console.log('Hi');
} // 새로운 것을 추가하는 것도 가능
console.log(Math.PI); // 3.14
console.log(Math.getCirclArea(5)); // 78.5
내일의 나는 무엇을 해야할까?