21.01.25(+21.01.27)
1. 함수
자바 스크립트에서 함수는 일급 객체이다.
생성자로 쓰이는 함수도 객체이다.
객체는 프로퍼티를 가질 수 있다.
일급객체란
다른 객체들에 일반적으로 적용 가능한 연산을 모두 지원하는 객체를 가리킨다.
일반적으로 적용 가능한 연산을 보통 매개변수로 넘기기, 수정하기, 변수에 대입하기,
리턴값으로 넘기기 등이 있다.
일반적으로 해당되지 않는 경우는 배열, 문자열이다.
클로저 : 내부함수가 외부함수의 전역변수를 기억하는 상태
2. this
자기자신의 객체를 가리키는 예약어이다.
function func () {} 가 선언되어 있을 때
var a = func() {}; -> this는 window를 가리키고 있으며, a를 출력하면 undefined가 출력된다.
var a = new func(); -> this는 Object를 가리키고 있으며, a를 출력하면 func가 출력된다.
3. 프로토타입
객체의 원형을 뜻한다.
객체의 프로퍼티에 속하며, 특정한 기능을 하는 프로퍼티이다.
자바 스크립트는 덕타입 언어이고, 덕타입과 프로토타입으로 다형성(상속 등)을 구현할 수 있게 한다.
-----------궁금했던 것---------
import문이나 include문과 같은 선언문이 없는데도 alert와 같은 함수를 쓸 수 있는 이유
자바 스크립트는 7가지 내장타입을 지원한다.
null, undefined, number, boolean, string, object, simbol. 이 중 object를 제외한 6가지를 원시타입이라 한다.
그래서 선언문 없이 alert() 함수(객체)를 사용할 수 있었던 것이다.
*주의 : window는 브라우저에 한정하여 최상위 object이지만 node.js는 웹 브라우저에서 동작하지 않기 때문에
최상위 객체가 없다. 대신 전역 변수, 전역 함수, 전역 개체를 가진다.
'FE > javascript' 카테고리의 다른 글
JavaScript spread 와 rest (0) | 2021.02.09 |
---|---|
JavaScript 단축 평가 논리 계산법, 비구조화 할당 (0) | 2021.02.05 |
JavaScript onload, fetch, promise (feat.과제) (0) | 2021.01.29 |
JavaScript 유사배열, DOM, instanceof(feat. 과제) (0) | 2021.01.29 |
JavaScript 데이터형, 연산자, 배열함수, 객체 (0) | 2021.01.21 |