2016-09-02 23 views
6

Mam problemy z odczytaniem nazwy konstruktora podczas korzystania z klas ES6 w Firefoksie. W Chromium działa dobrze, ale Firefox wydaje się mieć jakiś błąd? W Firefoksie otrzymuję tylko pusty ciąg znaków. Ktoś, kto zna obejście?Firefox ES6, pobierz nazwę konstruktora klasy

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

Więc, kiedy dostęp 'MyClass.name' pierwszy, to działa. Kiedy najpierw uzyskujesz dostęp do '.constructor.name', jest to pusty ciąg. Dziwne, zgaduję błąd. Oto skrzypce, które demonstrują: https://jsfiddle.net/gveopgu8/ –

+2

Te problemy mogą mieć związek: https://bugzilla.mozilla.org/show_bug.cgi?id=1192412 https://bugzilla.mozilla.org /show_bug.cgi?id=1280042 –

+2

Może jakieś dobre wieści, nie mogę się odtworzyć w Firefox Developer Edition (na podstawie 50.0), więc być może zostało już naprawione w nadchodzącej wersji. –

Odpowiedz

1

Myślę, że to błąd (zgodnie z komentarzem poniżej).

Wygląda na to, że określenie jawnego konstruktora wykazuje prawidłowe zachowanie w przeglądarce Firefox (nawet najnowszej wersji 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>

Oto link do JSFiddle: https://jsfiddle.net/jc7g5crp/

+2

Jest to funkcja ES6 i wygląda na błąd w FF. – Bergi

Powiązane problemy