inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[코드팩토리] [입문] 9시간만에 끝내는 코드팩토리의 Javascript 무료 풀코스

Getter and Setter (게터와 세터)

클래스를 써야할때와 함수를 써야할때

314

소중한 북극곰

작성한 질문수 0

0

17강에서 class도 함수로 인식한다 라고 하셨고

포맷도 함수와 같다고 생각되는데,

어떻게 구별해서 사용해야 하나요?

언제 클래스를 써야하고,

언제 함수를 써야하는지가 잘 인식되지 않아서요.

javascript

답변 2

0

씨쁠쁠러버

class 와 function 모두 내부적으로는 Function Object가 맞습니다.

하지만 코드팩토리님이 말씀 주신 부분 처럼 목적에 따라 다르게 사용되는데요.

class를 사용하는 경우는 인스턴스의 생성이 주 목적입니다. (객체와는 다른 부분이 있어 인스턴스라고 명명하겠습니다.)

class를 사용하게 되면 해당 함수는 무조건 new 연산자를 통해서만 호출이 가능하며, 이를 통해 인스턴스의 생성 목적임을 강하게 강제하게 됩니다. 즉 일반 함수를 호출 하는 것처럼 사용할 수 없게 되는 것이죠.

function 키워드를 사용해 함수를 구현하는 경우, 가장 큰 목적은 기능의 구조화라고 생각하는데요. 전역 공간에 모든 코드를 다 작성할 수 있지만 function 키워드를 통해 함수를 구현하는 경우, 함수 스코프를 활용할 수 있어 내부에서만 사용하는 로컬 변수를 정의할 수 있습니다.

또, 특정 목적에 맞는 기능을 구조화 함으로써 명확한 코드를 작성할 수 있게 도와줍니다. 이 외에도 클로저의 활용 등 다양한 목적으로 사용할 수 있다는 특징이 있습니다.

0

코드팩토리

안녕하세요!

포맷이 함수와 같다는건 무슨 말씀이실까요? 예를 들어서 질문 해주시면 답변 드리겠습니다.

다른 예로 JS의 특성상 많은것들이 "object"로 퉁쳐지는 경향이 있지만 "결국에" 같은거라고 해도 사람이 (개발자)가 보기에 다르기 때문에 적절한 키워드를 사용해주시는게 좋습니다.

마찬가지로 "함수"를 선언하는 것과 "클래스"를 선언하는건 똑같은 기능을 구현했다해도 뉘앙스가 분명 다릅니다. "함수"는 무언가를 실행하겠다는 목적성이 분명히 보이고 "클래스"는 하나의 네임스페이스, 즉 OOP와 관련된 기능이 구현될거라는 암시가 가능합니다.

감사합니다!

EXPLOPER에서 파일을 삭제하는 방법을 알려주세요 ㅜㅜ

0

100

2

&& ||가 너무 햇갈려요

0

97

2

js에선 string값이 아스키코드값으로 저장되지 않나요?

0

72

2

여러줄에 주석 쓰는 방법 질문

0

119

1

출력이안되요 ㅜㅜ

0

821

3

선생님, 감사해요

0

250

2

Factory Constructor를 언제 사용하나요?

0

231

2

n개의 await를 사용하면, 이들은 promise chaining 처럼 동작하나요?

0

168

1

안유진을 얼마만큼 좋아하시는 건가요?

7

470

2

단축 평가 (short circuit evaluation) 패턴 관련 질문있습니다.

0

217

1

혹시 공부한 내용을 개인 블로그(티스토리 등)에 요약해서 올려도 될까요 ?

0

335

1

Copy by Value에 대해 질문있습니다!

0

257

2

메모리 강의 중 메모리 활용 부분 질문드립니다.

0

274

1

Super Keyword 질문 있어요!

0

333

1

Static Keyword 질문 있어요!

0

272

1

Object.setPrototype(ray, IdolModel.prototype); 호출 후, ray.dance()가 실행되는 이유를 모르겠어요

1

494

2

선생님 저 멍청한거 맞죠?

0

745

2

sort 함수에 대해 궁금한 점이 있습니다.

0

435

1

대소관계 비교할 때 문자열과 비교할 경우

0

349

1

const 에서

0

408

1

함수 안 변수 키워드를 var를 사용하시는 이유가 궁금합니다.

0

552

1

Arrow 함수 질문있습니다.

2

363

1

scope에 대해 질문 있습니다.

0

320

1

Ts 가 목표인데 Prototype Chain 부분 정확하게 이해하고 넘어가야 할까요?

0

552

1