JavaScript - concised method


메소드를 축약해서 쓸 수 있다.

var obj = {
  name: 'foo',
  getName () {return this.name},
  getName2 : function () {return this.name} //원래 거.
}

const a = new obj.getName2(); //됨. 생성자 함수로써의 역할
const b = new obj.getName(); //안된다. 생성자 함수로 역할을 못한다.

대신 prototype이라는 프로퍼티가 없어져서 좀 가볍다. 생성자로서는 역할을 못하고 메소드 그 자체의 역할을 한다.

super 명령어로 상위 클래스에 접근 가능

super : 상위의 sub : 하위의

const Person = {
  greeting : function() {return 'hello'}
}

const friend = {
  greeting : function(){
    return 'hi, ' + super.greeting()
  }
}

Object.setPrototypeOf(friend, Person) //friend를 인스턴스로 하고 person을 생성자로 하라.

//위 아래가 같다.
const Person2 = function(){}
Person2.prototype.greeting = function(){return 'hello'}


const friend = new Person2();
friend.greeting = function(){
  retrun 'hi, ' +this.__proto__.greeting();
}