2016-05-19 83 views
0

我該如何在JavaScript中編寫能夠在Firefox中工作的類?我正在建立一個媒體存儲網站作爲一個項目,作爲該項目的一部分,我創建了一個可以保存媒體元素的類。得到的類定義代碼在Chrome中運行良好,但在Firefox中不起作用,它會觸發「類是保留標識符」警告。一些谷歌搜索證實,這是因爲Firefox不支持類。如何在Firefox中使用JavaScript類?

我該如何解決這個問題?我猜測有一些解決方法,答案並不是僅僅爲Firefox使用無類別代碼。

提前道歉(但是,謝謝!),可能是一個簡單的問題。我是一個新的程序員。

下面是如果有用的類代碼:

class MediaElement { 
    constructor(DemographicCategory,GenderCategory,Name,Link,Images,Blurbs,TypeofMedia,Summary,Rating){ 
     this.Name = Name; 
     this.Link = Link; 
     this.Image = Images; 
     this.Blurbs = Blurbs; 
     this.Summary = Summary; 
     this.Rating = Rating; 
    } 
} 
+0

你不能後。你可以使用類似[Babel](https://babeljs.io/)的工具編譯你的ES2015代碼(類的東西),然後運行編譯的代碼。 –

+0

查看支持列表:https://kangax.github.io/compat-table/es6/ –

回答

1

瀏覽器只是趕上ES6語法。 我認爲Firefox版本45開始支持類語法。

如果您希望ES6代碼也可以在舊版瀏覽器上運行,則必須使用babeljs或Google traceur將代碼轉換爲ES5 - 稱爲轉譯。然後在前端使用它。

1

您可以使用Babel REPL,看看它是如何transpile到ES5代碼(規格全Firefox支持),並使用這些代碼在你的應用程序,但我強烈建議你使用一些transpiler您的代碼由kra3說。 Babelgoogle Traceur做就可以

一個真正偉大的工作,這是你的類將如何看transpilation

"use strict"; 
 

 
function _classCallCheck(instance, Constructor) { 
 
    if (!(instance instanceof Constructor)) { 
 
    throw new TypeError("Cannot call a class as a function"); 
 
    } 
 
} 
 

 
var MediaElement = function MediaElement(DemographicCategory, GenderCategory, Name, Link, Images, Blurbs, TypeofMedia, Summary, Rating) { 
 
    _classCallCheck(this, MediaElement); 
 

 
    this.Name = Name; 
 
    this.Link = Link; 
 
    this.Image = Images; 
 
    this.Blurbs = Blurbs; 
 
    this.Summary = Summary; 
 
    this.Rating = Rating; 
 
};

+0

感謝法比奧。超級有用。 –

相關問題