2016-09-02 5 views
6

Firefox에서 ES6 클래스를 사용할 때 생성자 이름을 가져 오는 데 문제가 있습니다. Chromium에서는 제대로 작동하지만 Firefox에 버그가있는 것 같습니다. Firefox에서는 빈 문자열 만 반환합니다. 해결 방법을 알고있는 사람은 누구입니까?Firefox ES6, 클래스 생성자 이름 얻기

class MyClass {} 
let a = new MyClass(); 
console.log(a.constructor.name); 
+1

, 당신은 MyClass.name' 먼저 작동'에 액세스 할 때. '.constructor.name'에 먼저 접근 할 때 빈 문자열입니다. 이상하게, 나는 짐작하고있다. 시연하는 피들이가 있습니다. https://jsfiddle.net/gveopgu8/ –

+2

이러한 문제는 약간의 관계가 있습니다. https://bugzilla.mozilla.org/show_bug.cgi?id=1192412 https://bugzilla.mozilla.org /show_bug.cgi?id=1280042 –

+2

Firefox Developer Edition (50.0 기반)에서 재현 할 수없는 좋은 소식 일 수 있습니다. 따라서 향후 버전에서 이미 수정되었을 수 있습니다. –

답변

1

나는 (아래의 코멘트에 따라) 버그라고 생각합니다.

명시 적 생성자를 지정하면 Firefox (최신 버전 48 포함)에서 올바르게 작동하는 것으로 보입니다.

class MyClassWithConstructor { 
 
    constructor() { 
 
    console.log("Explicit Constructor") 
 
    } 
 
} 
 

 
class MyClassWithoutConstructor {} 
 

 
$('#with').click(function() { 
 
\t let tmp = new MyClassWithConstructor(); 
 
\t alert("MyClassWithConstructor name = " + tmp.constructor.name); 
 
}) 
 

 
$('#without').click(function() { 
 
\t let tmp = new MyClassWithoutConstructor(); 
 
\t alert("MyClassWithConstructor name = " + tmp.constructor.name); 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button id=with>With Constructor</button> 
 

 
<button id=without>Without Constructor</button>

여기 JSFiddle에 대한 링크입니다 : 그래서 https://jsfiddle.net/jc7g5crp/

+2

그것은 ES6 기능이며 FF에 버그가있는 것으로 보입니다. – Bergi