본문 바로가기

배운 것/js

[js] ES6 클래스 방식의 인스턴스는 name 프로퍼티를 찾는다

 

ES5 방식의 인스턴스는 name 프로퍼티를 찾지 못한다

 

예제

function G () {}
G.method1 = function (){}
G.prototype.method2 = function (){}

const g = new G()

console.log(G.method1.name, g.method2.name)

코드 해석 : 

-> G.method1 = function (){}

G 를 생성자 함수로 사용했고 함수는 일급 객체이기 때문에 프로퍼티를 할당할 수 있다.

 

-> G.prototype.method2 = function (){}

G 의 프로토타입이 할당할 메서드들은 인스턴스(g)에 상속이 된다. 그렇기 때문에

-> g.method2

인스턴스 입장에서 자신의 것처럼 호출할 수 있다.

 

G의 메서드 이름과 G의 인스턴스인 g의 메서드 이름을 콘솔로 찍으면 둘 다 undefined 가 출력된다.

 

 

ES6 클래스 방식의 인스턴스는 name 프로퍼티를 찾는다

 

예제

class F {
	static method1(){}
    method2(){}
}

const f = new F()

console.log(F.method1.name, f.method2.name)

콘솔 결과 

method1, method2 가 출력된다.

 

 

'배운 것 > js' 카테고리의 다른 글

[js] Destructuring assignment (해체할당)  (0) 2020.01.19
[js] arrow function 의 this  (0) 2019.12.09
[js] Ajax란  (0) 2019.12.02
[js] 프로토타입 상속이 어떻게 작동하는가  (0) 2019.12.02
[js] arrow function 규칙  (0) 2019.11.09