일반함수 arrow함수

jooooo·2023년 1월 5일
0
post-custom-banner

function

let user = {
  name: "John",
  age: 30
};

user.sayHi = function() {
  alert("안녕하세요!");
};

user.sayHi(); // 안녕하세요

함수를 축약 가능하다

user.sayHi() {
  alert("안녕하세요!");
};

일반함수, arrow함수

  • 일반함수
let user = {
  name: "John",
  age: 30,

  sayHi() {
    // 'this'는 '현재 객체'를 나타냅니다.
    alert(this.name);
  }

};

user.sayHi(); // John

일반 함수에서 this를 호출하면 user 객체에 접근이 가능하지만

  • arrow함수
  sayHi:() => {
    alert(this.name);
  }

화살표 함수로 this호출시엔 전역객체에 접근하게 된다.

strict모드

'use strict'
function strict(){
console.log(this)
}

엄격모드를 사용하게되면 window(전역객체)에 접근하지 않고 undefined를 뱉는다

메서드 안에서의 함수 선언

  • 화살표함수
let user = {
  firstName: "joo",
  sayHi() {
    let arrow = () => alert(this.firstName);
    arrow();
  }
};
user.sayHi(); // joo

메서드 안에서 함수를 선언해야 할 경우에는 화살표 함수가 좋다!

  • 일반함수
let user = {
  firstName: "joo",
  sayHi() {
    let arrow(){ alert(this.firstName); // 일반함수 사용시 this가 window를 실행시키기 때문에
    }    
     arrow.call(this); //call을 사용하여 this(user())사용이 가능하다.
  }
};

string 원시값

'string'.toUppercase()

원시값에는 메서드 사용이 불가능한게 맞지만
toUppercase()는 String이 기본적으로 가지고 있는 메서드 이기 때문에 사용이 가능하다.

profile
INFP🖐
post-custom-banner

0개의 댓글