1. Method 메소드(멤버 함수)
- 클래스나 객체에 속해 있는 함수
- 객체 내에서 정의된 함수를 의미
- Javascript에서 함수가 객체의 프로퍼티로 저장된다면 이것은 메소드
- 함수로 된 property
- 클래스에 만드는 함수
- 메소드는 주로 객체의 프로퍼티 값을 변경하거나 알아내는 기능과 클래스를 대표하는 기능
- property 는 속성이라면 method 는 행동
- javascript 에서는 괄호로 함수를 호출하므로 대부분 괄호로 끝나면 method, 없으면 property
-ex) listA.length = 프로퍼티 / listA.push(1) = 메소드
var obj = {
foo: function() {},
bar: function() {}
};
obj.foo();
-> foo: function() {} 이게 메소드
메소드 간략화
var obj = {
foo() {},
bar() {}
};
2. Property
- 키(key)와 값(value)이 연관된 객체(object)의 부분
- 객체 내에서 선언된 변수()를 의미
- 배열 내부에 있는 값들을 요소(), Javascript에서는 배열 또한 객체로 표현되기 때문에 요소와 Property는 Javascript에서 사실상 동일
- property는 객체에 포함, 변수는 컨텍스트에 포함
var obj = {
x: 'local',
y: 'global'
};
obj.x; ---> local
-> x = key, 'local' = value => 둘을 합친 것 property
3. 객체
- Jacascript의 method에서 this는 method가 속한 객체
- 인스턴스 생성 후 클래스에서 제공하는 프로퍼티와 메서드를 사용할 때 주로 사용
var obj = {
x: 'local',
y: 'global'
};
-> obj가 객체
- 객체와 인스턴스
객체 : 클래스의 타입으로 선언되었을 때
인스턴스 : 메모리에 할당되어 실제 사용될 때
4. 클래스
- 객체를 만들어 내기 위한 틀, 설계도
- 연관되어 있는 변수와 메소드의 집합
- 변수와 함수 중 연관이 있는 변수와 함수를 선별해 포장하는 기술
- 포장하는 이유는 객체 단위로 코드를 그룹화 하고 재사용하기 위해서이다
5. 인스턴스
- 클래스를 사용하려면 일반적으로 인스턴스를 생성해서 사용
- 한 페이지에 2개 이상의 같은 동작을 하는 UI를 만들 경우 2개의 클래스를 만드는 것이 아니라 1개의 클래스를 만들고 그 안에 2개의 인스턴스를 만들어 사용
- new 키워드를 이용해 클래스의 실체를 생성할 때 주로 사용
6. 변수
- 프로그래밍은 변수를 선언하고 값을 할당하며 변수를 참조하는 기본적인 기능을 제공
- 변수는 전역, 코드 블록(of, for, while, try/catch), 함수 내에 선언
- 코드 블록이나 함수는 중첩 가능
7. 함수의 특징
- callable(호출할 수 있는)
- Jacascript에서 함수는 객체
var a = "test"; => a는 변수
this.a = "test"; => a는 프로퍼티
- this는 public, var는 private한 변수
- JavaScript에서는 private public 의 개념이 따로 존재하지 않는다
- Public은 외부에서 접근 가능한 변수
- private이 내부에서만 접근 가능한 변수