속성(Property)
1. 접근
person2 = person
-> person2는 단독의 주소를 가지는 것이 아닌 person의 주소값을 가지고 참조를 하는 형태
-> person2에서 속성값을 변경하거나, person에서 속성값을 변경하면
-> person, person2 두 개 모두 속성값이 변경됨
function 함수명(함수 객체의 이름표 | 변수와 같다) ( 매개변수 ..) {
함수가 실행할 코드
return 반환값}실행 가능한 객체(Execution Context) 로 함수를 번역 하는 과정
function outer(num1, num2){
return num1 + num2;
}
class Ellipse {
constructor(a, b){
this.a = a;
this.b = b;
}
getArea() {
return this.a * this.b * Math.PI;
}
}
class Circle extends Ellipse {
constructor(r){
super(r, r);
}
getArea() {
console.log("재정의 된 getArea()");
return super.getArea();
}
// 생성자가 아닌, 기능이 제한된 메서드
}
객체를 생성할때마다 신규 주소를 부여받음
데이터 프로퍼티
접근자 프로퍼티
const person = {
_name : 'kim',
_age: 20,
get name() {
// 통제 로직...
return this._name;
},
set name(name) {
// 통제 로직...
this._name = name;
},
get age() {
return this._age;
},
set age(age) {
this._age = age;
},
};
( function 함수명 ( 매개변수 ) {
})( );
Object.seal(...) : 객체 밀봉
Object.freeze(..) : 객체 동결
Object.preventExtensions (...) -> 속성 추가 방지
전송 가능한 형태로 변환 (문자열) -> JSON 문자열
함수, Undefined는 변환이 불가하여 null이 됨
JSON 객체
주소만 복사 : 얕은 복사
깊은 복사 : 새로운 객체 + 내용도 복사