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

강구민님의 프로필 이미지
강구민

작성한 질문수

따라하며 배우는 노드, 리액트 시리즈 - 기본 강의

화살표 함수와 fucntion 함수의 차이가 궁금합니다

작성

·

225

0

userSchema.pre('save', (next) => {

  var user = this;

  if (user.isModified('password')) {

    //비밀번호 암호화 시키기

    bcrypt.genSalt(saltRounds, function (err, salt) {

      if (err) return next(err);

      bcrypt.hash(user.password, salt, function (err, hash) {

        if (err) return next(err);

       

        user.password = hash;

        return next();

      });

    });

  } else {

    return next();

  }

});

--------------------------------------- 윗부분은 제 코드입니다 

7강에서 강사님 코드 userSchema.pre('save', function (next) {  } <-을 저는 ->userSchema.pre('save', (next) => { }  으로 하니까 오류가 나더라구요.. 왜 화살표 함수로 인자를 보내면 오류가 날까요 화살표 함수 사용시 {} 안에 return 해야한다는것을 알고 return next() 를했는데도 안되더라구요 ㅠㅠ 알려주세요! 

답변 1

1

John Ahn님의 프로필 이미지
John Ahn
지식공유자

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Functions/%EC%95%A0%EB%A1%9C%EC%9A%B0_%ED%8E%91%EC%85%98

이곳에 보면 

화살표 함수 표현(arrow function expression)은 function 표현에 비해 구문이 짧고  자신의 thisargumentssuper 또는 new.target을 바인딩 하지 않습니다. 

이렇게 설명이 되어있습니다 ^^ 

화살표 함수는 자신의 this 를 binding 하지않기에 이러한 현성이 나타납니다 ~ !!

수고하세요 ~ ! 

강구민님의 프로필 이미지
강구민

작성한 질문수

질문하기