자바스크립트 객체
1. 클래스 기반의 객체 지향
- 특징
- 객체, 메서드, 속성
- 클래스
- 캡슐화
- 집합
- 상속성
- 다형성
- 객체, 메서드, 속성
- 세상의 모든것을 의미 == 객체
- 객체가 가지는 특징 == 속성 , 행동 == 메소드
- 클래스
- 객체를 만들어 내는 청사진 또는 프레임 또는 객체를 만들어 내는 레시피
ex) 참새 객체와 독수리 객체 는 새라는 객체(Class)에 해당됩니다.
- 객체를 만들어 내는 청사진 또는 프레임 또는 객체를 만들어 내는 레시피
- 캡슐화
- 관련 속성과 메서드를 하나의 객체로 묶어 포함할 수 있음 을 나타냅니다.
- 정보은닉
- 가스렌지 사용자가 버튼만 가지고 불을 다룰수 있게, 겉에 나와있는 메서드 또는 속성을 통해 객체를 변경하는 행위를 구현한 코드 입니다.
즉. 안에 구현이 어떻게 되었는지, 어떻게 작동하는지 알 필요가 없습니다.
자바스크립트에서는 모든 메섣, 속성은 public로 정의 됩니다.
- 가스렌지 사용자가 버튼만 가지고 불을 다룰수 있게, 겉에 나와있는 메서드 또는 속성을 통해 객체를 변경하는 행위를 구현한 코드 입니다.
- 집합
- 몇 개의 객체를 합쳐서 하나의 객체로 만든 것을 의미합니다.
- 분할/정복, 그리고 종합하는 과정을 지원 합니다.
- 상속성
- 코드를 재사용하거나 기존 코드를 확장하는 좋은 방법
- 부모 클래스에 있는 메소드나 속성이 자식 클래스에 있는 메소드와 속성으로 대체 할수 있습니다.
자바스크립트에서는 프로토타입을 통한 상속을 지원합니다.
- 다형성
- 동일한 이름의 메서드를 호출하더라도 실제 호출 대상이 되는 객체에 따라 서로 다른 메서드를 실행되는것을 의미합니다.
Korean --> Person **--> 부모를 의미** 일때 둘다 talk라는 메소드를 가지고 있고, 두명의 talk라는 메소드에 대한 구현이 다릅니다. 이럴 경우 하나의 인스턴스에서 talk라는 메소드를 실행 했을 때 Korean , Person 중 하나의 talk가 나올수 있는 것을 다형성 이라고 합니다.
다형성이란? 여러 객체가 동일한 메서드 호출에 반응하는 능력을 말합니다.
- 동일한 이름의 메서드를 호출하더라도 실제 호출 대상이 되는 객체에 따라 서로 다른 메서드를 실행되는것을 의미합니다.
2. 객체 생성
- 객체의 정의 및 생성
- 자바스크립트 내장 생성자
- 함수와 클래스의 차이점
3. Object 객체 정의 1 - new Object
- new keyword를 통해 만든 Object는 생성자를 통해서 만들어진 객체라고 말할수 있습니다.
var mySon = new Object() // new 연산자 사용
mySon.Name = "봉성주";
mySon.Age = 9;
mySon.IncreaseAge = function(i){ this.Age + i ;};
객체를 생성한 후 멤버를 추가하는것은 자바스크립트 특징 입니다.
4. Object 객체 정의 2 - 객체 리터럴
- 객체 리터럴을 사용해서 new와 Object 생성자를 이용하는 과정을 좀 더 간소화 할수 있습니다.
- 코드가 간결해지고 가독성이 높아집니다.
var mySon = {} ; mySon.Name = "봉성주"; mySon.Age = 9; mySon.IncreaseAge = function(i){ this.Age + i ;};
정의된 멤버는 모두 외부에서 접근할수 있는 공개 멤버 입니다.
5. 사용자 정의 객체 정의 3가지
- 객체 정의
public class Person{ //멤버변수 pulbic string name; // 생성자 public Person(name,age) { this.name = name; } } Person mySon = new Person(...);
function Person(name){
this.name = name;
}
객체를 생성할때와 함수를 생성할때 function을 사용합니다.
일반 함수와 생성자를 구분하고자 일반 함수는 소문자로, 생성자는 대문자로 시작합니다.
- 멤버 정의
this.name = name // this를 사용해서 멤버를 추가합니다. // 익명함수를 통해 멤버변수에 접근할수 있습니다. this.setName = function(newName){ this.name = newName; };
- 객체 생성
// new 메소드를 사용해서 만드실수 있습니다. var mySon = new Person("봉"); var mySon = new Person();// name == undefined var mySon = new Person;// name == undefined
자바스크립트 생성자 = 객체 구조 정의 & 객체 초기화 를 의미합니다.
this를 통해 정의된 멤버를 인스턴스 멤버라고 합니다.
댓글 없음:
댓글 쓰기