내가 자바스크립트에 약한 편이라 프로젝트를 하면서 문법 좀 숙달시키려고 하는데
express 라이브러리를 사용하려고 했는데
const app = express();
라고 하니까 함수 같거든? 그래서 콘솔로 typeof 찍어봐도 function으로 나오고,
근데
app.use(express.json());
app.use(express.urlencoded({extended: true}));
이런 구문이 있는데 자바만 하다가 온 입장에선 당혹스러운 구문이거든?
express가 객체처럼 보이고 그 객체의.json() 메소드랑 .urlencoded() 메소드를 호출한 것처럼 보이니까 혼동이 옴.
함수를 변수처럼 써서 콜백쓰고 이런건 알겠는데 대체 "함수에서 함수를 호출하는 건(이게 맞는지도 정확히 모르겠음)" 뭐야?
뭘 공부해야 하는지도 모르겠어.
함수가 1급객체라 그럼
js에선 함수도 객체임
오우 ㅅㅂ... 좀 더 공부하고 오겠습니다.
자스는 함수가 1급객체라 원래 클래스를 함수로 정의했음 그래서 function MyClass() {}라 박아놓으면 나중에 new MyClass() 이딴식으로 객체 생성이 되는거임
이때 함수는 생성자의 역할을 하고 MyClass.prototype이 흔히 생각하는 클래스의 필드랑 메소드를 정의하는 영역이었는데 요새는 다른 언어처럼 class 키워드 도입돼서 잘 모를수도 있는 부분
신기하네. 클래스 예약어만 써서 전혀 몰랐음;; ㄳ