원시값은 immutable value , pass by value 이다.
객체타입은 muutable value(변경가능한 값), pass by reference 이다.
도대체 객체란 무엇인가
object의 반대개념은 subject(주체)이지만, 프로그래밍에는 주체란것이 없다.
속성 property는 자산이란 뉘앙스가 강한 특성 key와 값으로 구성 / attribute는 특성
사람이란 객체를 만들때
사람의 무수한 특성(property)들이 존재할텐데
추상화 : 사람의 관심있는 데이터들만 모은거
property, method는 필요에 따라 추가 할 수 있다.
ex) 붕어빵 만들때
붕어빵 틀을 클래스
붕어빵을 객체 혹은 인스턴스라고 함.
일반적으로 자바스크립트는 프로토 타입 기반 객체 지향 언어 / 자바는 클래스 기반 객체지향 언어 이다.
프로퍼티 키는 식별바 명명규칙에 따르지 않아도 상관없음.
symbol값은 보통 프로퍼티 키를 만든다. 절대 중복되지 않는 값(= symbol() )
- 프로퍼티 키 : 빈 문자열을 포함하는 모든 문자열 또는 symbol 값
- 프로퍼티 값 : 자바스크립트에서 사용할 수 있는 모든 값
method : 프로퍼티 값이 함수인것
var circle = {
radius: 5, // ← 프로퍼티
// 원의 지름
getDiameter: function () { // ← 메소드
return 2 * this.radius; // this는 circle를 가리킨다.
}
};
console.log(circle.getDiameter()); // 10
프로퍼티의 접근은 기본적으로 마침표 표기법으로 쓴다.
없는 프로퍼티에 접근하면 undefined 이다.
C언어는 클래스안에서 인스턴스를 추가하는것이 불가능하지만
자바스크립트는 객체 생성에 있어서 프로퍼티를 추가,삭제하는것이 가능하다.
반응형