인프런 커뮤니티 질문&답변

gkdlsb1234님의 프로필 이미지
gkdlsb1234

작성한 질문수

[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스

함수 선언시 질문있습니다.

해결된 질문

작성

·

166

0

이 질문은 학습용임으로 사용목적에 대해서 답변을 구하는것은 아닙니다.

function onChangePasword(e){}
위와 같이 사용도 가능하지만
const onChangeEmail = function (event) {}
와 같이 익명함수로도 선언이 가능하자나요?

질문코자 하는 내용은 아래와 같이 default 로 생성시 error 가 발생합니다.
onChangeEmail = function (event) {}

또한 화살표 함수를 사용시에도 동일한 문제가 발생합니다.const onChangeEmail = (event) => {} 정상
onChangeEmail = (event) => {} error

 

이유가 뭔가요?

답변 1

0

노원두님의 프로필 이미지
노원두
지식공유자

안녕하세요! gkdlsb1234님!

함수를 만드는 방법에는 크게 3가지 방법이 있습니다!

1. 함수선언식: function qqq(){}
2. 함수표현식: const qqq = function(){}
3. 화살표함수: const qqq = () => {}

따라서, 앞에 function 또는 const(let, var 도 가능) 등이 붙어야 해요!

제 생각에 gkdlsb1234님께서 이러한 질문을 하신 이유는 React의 class컴포넌트 사용시 만들었던 함수의 방식과 혼동을 하고 계신 것이라 생각이 듭니다.

class나 객체 안에서도 역시 함수를 만들 수 있는데, 우리는 이러한 함수를 메소드라고 불러요!
관련된 내용은 뒷부분 class 컴포넌트 수업에서 진행합니다!
간략히만 설명을 드리면, class 또는 객체 안에서 메소드를 만드시는 경우에는 다음과 같이 작성 가능합니다!

// 클래스에서 메소드 만들기
class 나의컴포넌트 extends Component {

   aaa() {

   }

   bbb = () => {

   }
}

// 객체에서 메소드 만들기
const 나의프로필 = {
   age: 12,
   school: "다람쥐초등학교",
   
   aaa(){

   },

   bbb: () => {

   }
}

반대로 이와 같은 메소드의 경우에는 const나 function을 붙일 수 없답니다!^^

 

gkdlsb1234님의 프로필 이미지
gkdlsb1234

작성한 질문수

질문하기