[Java Script]オブジェクトメソッド


📍 method
ハーモニー
const superman = {
  name : 'clark',
  age : 33,
  fly : function(){ // method : Object 프로퍼티로 할당 된 함수
    console.log('날아갑니다.')
  }
  fly(){ // function 키워드 생략하여 줄여서 작성 가능!
    console.log('날아갑니다.')
  }
  sayHello(){
    console.log(`Hello, I'm ${this.name}`);
  }
}
📍 this
ハーモニー
sayHello = function(){
  console.log(`Hello, I'm ${this.name}`);
}
let boy = {
  name : 'Mike',
  sayHello,
}

let girl = {
  name : 'Jane',
  sayHello,
}
// sayHello() 앞의 boy, girl이 sayHello() 함수의 this가 됩니다!
boy.sayHello(); // "Hello, I'm Mike"
girl.sayHello(); // "Hello, I'm Jane"
📍 矢印関数のthis

  • 通常の関数とは異なり、矢印関数には独自のthisはありません.

  • 矢印関数の内部でthisを使用すると、thisは外部から値を取得します.

  • オブジェクトの作成方法で矢印関数を使用する場合、この関数を使用するとエラーが発生する可能性があります.

  • したがって、オブジェクトの作成方法でこの方法を使用する場合は、矢印関数は使用しないほうがいいです.

  • 環境あたり전역객체
  • ブラウザ環境:window
  • Node js : global
  • ハーモニー
    let boy = {
      name : 'Mike',
      sayHello : ()=>{
        console.log(this); // 전역 객체 window or global
      }
    }
    
    boy.sayHello();
    // this != boy