1. 객체 _ Object
서로 다른 종류의 변수를 그룹화( C언어의 구조체 )
사전적 의미 - 어떤 물건이나 대상
프로그래밍적 의미 - 프로그램에서 표현하고자 하는 기능을 묶는 단위
ᅠᅠ객체를 구성하는 단위
- 객체를 이루는 것은 데이터( 변수 )와 기능( 함수 )
- 데이터는 변수로 표현
- 객체 안에 포함된 변수를 멤버 변수 or 프로퍼티 or 필드라고 부름
- 기능은 메서드( 클래스에 소속된 함수 )로 표현
- 객체 안의 함수는 반드시 여러 개
2. 클래스 _ Class
객체의 설계도 역할을 하는 프로그램 소스이다.
하나의 클래스를 통해 동일한 구조를 갖는 객체를 여러 개 생성 가능
ᅠᅠ클래스의 가장 기본적인 코드 형식
ᅠᅠᅠclass 클래스이름 {
ᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠ멤버변수 선언
ᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠ생성자 함수 ( 멤버 변수 초기화 )
ᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠgetter, setter 함수 정의
ᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠ메서드 함수 정의
ᅠᅠᅠ}
ᅠᅠ클래스의 객체 생성
ᅠᅠᅠvar 혹은 let 혹은 const 변수 이름 = new 클래스 이름( ) ;
ᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠ➥ 클래스 안에 정의된 모든 기능을 부여받은 특수한 형태의 변수
ᅠᅠᅠ이런 형태의 변수를 객체라고 부르며, 객체는 자신에게 부여된 기능을 점( . )을 통해 접근
ᅠᅠᅠ-->ᅠ객체. 멤버 변수 = 값 ;
ᅠᅠᅠ-->ᅠ객체. 메서드( ) ;
ᅠᅠᅠex) 메세지의 치명도를 뜻하는 < Console 객체 > 객체 뒤는 " 함수 "
ᅠᅠᅠᅠᅠᅠconsole.log( ・・・ ) : 무의미
ᅠᅠᅠᅠᅠᅠᅠᅠ--> " console " 은 객체 / " log " 는 함수이다.
ᅠᅠᅠᅠᅠᅠconsole.debug( ・・・ ) : 무의미(Verbose)
ᅠᅠᅠᅠᅠᅠᅠᅠ--> " console " 은 객체 / " debug " 는 함수이다.
ᅠᅠᅠᅠᅠᅠconsole.error( ・・・ ) : 치명적인 에러(Errors)
ᅠᅠᅠᅠᅠᅠᅠᅠ--> " console " 은 객체 / " error " 는 함수이다.
ᅠᅠᅠᅠᅠᅠconsole.info( ・・・ ) : 시스템 정보(Info)
ᅠᅠᅠᅠᅠᅠᅠᅠ--> " console " 은 객체 / " info " 는 함수이다.
ᅠᅠᅠᅠᅠᅠconsole.warn( ・・・ ) : 경고 메시지(Warnings)
ᅠᅠᅠᅠᅠᅠᅠᅠ--> " console " 은 객체 / " warn " 는 함수이다.
★ 점( . )의 왼쪽은 무조건 객체 ★
ᅠᅠ클래스의 작성 패턴
ᅠᅠᅠ1. 변수만 정의한 클래스
ᅠᅠᅠᅠᅠᅠ➞ 멤버 변수는 모두 ' undefined ' 상태이기에 객체를 통해
ᅠᅠᅠᅠᅠᅠ값의 초기화를 별도로 수행해야 한다.
class 클래스 이름 {
ᅠᅠᅠᅠᅠᅠ변수 1 = 값 1 ;
ᅠᅠᅠᅠᅠᅠ변수 2 = 값 2 ;
ᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠ・・・・
ᅠᅠᅠᅠᅠᅠ변수 n = 값 n ;
}
ᅠᅠᅠ2. 메서드만 정의한 클래스
ᅠᅠᅠᅠᅠᅠ➞ 용도나 목적이 같은 메서드( 클래스에 소속된 함수 )들을 별도의 클래스로 묶는다.
ᅠᅠᅠᅠᅠᅠᅠᅠ메서드 앞에 ' function ' 키워드가 없다.
class 클래스 이름 {
ᅠᅠᅠᅠᅠᅠ함수 이름 1(파라미터 n・・ ) {
ᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠ・・・・
ᅠᅠᅠᅠᅠᅠ};
ᅠᅠᅠᅠᅠᅠ함수 이름 2(파라미터 n・・ ) {
ᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠ・・・・
ᅠᅠᅠᅠᅠᅠ};
ᅠᅠᅠᅠᅠᅠ함수 이름 n(파라미터 n・・ ) {
ᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠ・・・・
ᅠᅠᅠᅠᅠᅠ};
}
ᅠᅠᅠ3. 멤버 변수와 메서드를 함께 정의한 클래스
ᅠᅠᅠᅠᅠᅠ➞ 멤버 변수의 스코프는 클래스 내의 모든 메서드에서 식별 가능하다.
ᅠᅠᅠᅠᅠᅠᅠᅠ즉, 모든 메서드가 공유하는 전역 변수의 개념
ᅠᅠᅠᅠᅠᅠᅠᅠ함수들끼리 변수를 공유하고 싶을 때 사용
ᅠᅠᅠᅠᅠᅠᅠᅠ같은 클래스에 속한 멤버 변수나 함수끼리는 this 예약어를 통해서만 접근 가능
class 클래스 이름 {
ᅠᅠᅠᅠᅠᅠ변수 1 = 값 1 ;
ᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠ・・・・
ᅠᅠᅠᅠᅠᅠ변수 n = 값 n ;
ᅠᅠᅠᅠᅠᅠ함수 이름 1( ・・・ ) {
ᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠ・・・・
ᅠᅠᅠᅠᅠᅠ};
ᅠᅠᅠᅠᅠᅠ함수 이름 n( ・・・ ) {
ᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠ・・・・
ᅠᅠᅠᅠᅠᅠ};
}
ᅠᅠᅠ4. 생성자 함수
ᅠᅠᅠᅠᅠᅠ➞ new 예약어를 사용하여 인스턴스( 객체 )가 생성될 때 자동으로 실행되는 특수한 함수로서
ᅠᅠᅠᅠᅠᅠᅠᅠ주로 멤버 변수의 값을 초기화( 변수에 최초로 값을 대입하는 것 ) 하기 위해 사용한다.
ᅠᅠᅠᅠᅠᅠᅠᅠ함수의 이름이 " constructor( ) " 으로 정해져 있다.
ᅠᅠᅠᅠᅠᅠᅠᅠ필요에 따라 파라미터를 정의할 수 있으며, 변수와 파라미터 개수는 같다.
ᅠᅠᅠᅠᅠᅠᅠᅠ객체 생성 단계에서 멤버 변수의 값을 다양하게 변경할 수 있다.
class 클래스 이름 {
ᅠᅠᅠᅠᅠᅠ변수 1 ;
ᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠ・・・・
ᅠᅠᅠᅠᅠᅠ변수 n ;
ᅠᅠᅠᅠᅠᅠconstructor( 파라미터 1, 파라미터 2,ᅠ・・・,ᅠ파라미터 n ) {
ᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠthis.변수 1 = 파라미터 1 ;
ᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠthis.변수 1= 파라미터 2 ;
ᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠ・・・・
ᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠthis.변수 n= 파라미터 n ;
ᅠᅠᅠᅠᅠᅠ};
}
★ 객체도 배열의 원소가 될 수 있다. ★
'Javascript > 9. 클래스와 객체' 카테고리의 다른 글
SyntaxError (0) | 2022.12.07 |
---|---|
은닉성, getter 함수, setter 함수, 클래스의 상속, 정적 멤버변수, 정적 메서드, 싱글톤 패턴 (0) | 2022.12.07 |