2022. 10. 23. 13:12ㆍjs
객체란.
Javascript 의 대부분의 것 들은 object 이다.
여기서 제외된 것은 원시 값을 의미하고
이는 단하나의 값을 나타내는 것 을 의미한다.
따라서 원시값은 immutable value,
Object 는 mutable value 라고 표현 가능.
var count = {
num : 0,
increase : function () {
this.num++;
}
}
프로퍼티. 이면서 함수인 경우. Method.
즉. 내부 동작을 정의하기 때문에 method 라고 설정. = 프로퍼티를 참조하고 조작할 수 있는 동작 .
Js 에서
함수와 객체는 밀접한 관계를 가진다. 이것은 무슨 뜻일까.
함수로 객체를 생성하기도 하고, 함수가 객체 이기도 하다. ?
말이 잘 이해가 안됨. 조금더 생각해 볼 필요성 이 있다.
Js 의 경우 사전에 정의하고 생성자 호출을 통해서 만 사용 하지 않는 이유가
인터프리터 적인 설정을 이용하기 때문이라고 생각.
객체 리터럴
{
Var count = {
num : 0,
increase : function () {
this.num++;
}
};
중괄호로 정의하고 콜론을 기준으로
프로퍼티의 값을 설정하는 방식으로 진행됨.
프로퍼티가 값이 없다면, 빈객체 파일이 설정됨.
코드 블록이 아니기 때문에 세미콜론을 닫아줌으로써 객체임을 판단함.
}
Var person = {
firstName : value,
last-name : value // last-name 의 경우 카멜케이스 방식의 코드 스타일을 따르지 않기 때문에
// syntax 에러가 발생함.
}
재밋는 점은. 자바스크립트의 경우 빈 프로퍼티에 새로운 값을 설정 할 수 있음.
프로퍼티에 접근 하는 방법은 두가지가 있다.
마침표 표기법.
대괄호 표기법.
마침표 표기법으로 접근 할 때 에는 카멜 케이스 방식의 경우에 사용한다.
Person.last-name 의 경우 .
Person 의 라스트를 찾고 -name 을 실행한다.
-name 은 식별자로서 해석됨.
새로운 프로퍼티를 추가할때는
object.key = value 와 같은 방식으로 추가 할 수 있고,
제거할경우 delete object.key 와 같은 방식으로 제거 할 수 있다.
존재하지 않는 값을 제거 하더라도 에러가 발생하지 않는다.
Es6 에서
프로퍼티 를 추가할때 값으로 변수를 사용한다면
변수의 이름이 프로퍼티, 값을 변수의 값으로 할당되어 사용됨.
계산된 프포퍼티의 이름으로 프러퍼티 키를 동적 생성 할 수 있다는 이야기는
결국 변수에 선언된 것을 기반으로 하여 새로운 프로퍼티를 생성 할 수 있다는 이야기.
Const name = “props”;
Cons obj = {
\[\`${name} + ${++I}\`\] : I,
}
와 같이 생성 할 수 있다.
Const obj = {
sayHi : function (){
non-method in es6
}
sayHi () {
method es6
}
}
두가지의 방식으로 선언 할 수 있고
두가지는 차이점이 있다.
여기서 sayHi () {
} 와 같이 축약을 통한 녀석만을 메서드라고 정의한다고 한다.
이유는 메서드는 instance 를 생성 할 수 없는 non-constructor이고
위의 sayHi : () 의 경우 instance 의 생성이 가능하기 떄문이다.
'js' 카테고리의 다른 글
js deep dive [12 함수 part 01] (0) | 2022.10.24 |
---|---|
js deep dive [11장 정리 원시 값과 객체의 비교] (0) | 2022.10.24 |
0610 (0) | 2022.06.11 |
0609 (0) | 2022.06.09 |
0608 계산기 만들기. (0) | 2022.06.08 |