본문 바로가기

자바스크립트🔥

ES6 / 헷갈리는 그 이름 this 2편 / 메서드호출

아아 누가 나 몰래 뇌주름을 다림질해놨는지

머리가 안굴러간다.

 

암튼 오늘은 메서드 호출

 

함수의 객체가 프로퍼티값이면 메서드로서 호출된다.

이 때 메서드 내부의 this는 해당 메서드를 소유한 객체, 즉 해당 메서드를 호출한 객체에 바인딩된다.

 

var obj1 = {
  name: 'Lee',
  sayName: function() {
    console.log(this.name);
  }
}

var obj2 = {
  name: 'Kim'
}

obj2.sayName = obj1.sayName;

obj1.sayName();
obj2.sayName();

프로토타입 객체도 메서드를 가질 수 있음.

프로토타입 객체 메서드 내부에서 사용된 this도 일반 메서드 사용방식과 마찬가지로 해당 메서드를 호출한 객체에 바인딩 됨. 

 

function Person(name) {
  this.name = name;
}

Person.prototype.getName = function() {
  return this.name;
}

var me = new Person('Lee');
console.log(me.getName());

Person.prototype.name = 'Kim';
console.log(Person.prototype.getName());

하.. 왜케어렵냐

그래도 화이ㅣㅇ팅.................😥