2017-01-27 22 views
2

我有一個文件,其中包含此功能:JavaScript對象無法在Internet Explorer中定義

$(function() { 
    window.selected = {}; 
    const pageFilter = new PageFilter(); <-ERROR HERE 
    const filters = JSON.parse(pageFilter.toString()); 

    [do other stuff] 
}); 

而在另一個文件中,我有我PageFilters類中定義爲這樣的:

class PageFilter { 
    constructor() { 
     if (typeof window.Filters === "undefined") { 
      window.Filters = {}; 
      window.pendingNotifications = []; 

      const columnFilter = Util.getParameterByName("columnFilter"); 
      const trimedFilter = columnFilter.substring(1, columnFilter.length - 1); 
      if (trimedFilter.length > 0) { 
       const parsedColumnFilter = JSON.parse(trimedFilter); 

       this.addRange(parsedColumnFilter); 
      } 
     } 
    } 

...[more methods etc.] 
} 

當我使用chrome或firefox運行我的整個項目,但是我沒有收到任何錯誤,但是當我在Internet Explorer中運行它時,當我嘗試創建新的PageFilter()對象時出現錯誤。

任何人都有任何洞察力,爲什麼我可能只有在ie和其他瀏覽器中得到這個錯誤?任何可能的修復?

我在我的代碼的另一個區域也有類似的問題,我嘗試從cshtml文件調用另一個JavaScript類,它也說它是未定義的,但只在ie中。任何有關這方面的見解都會很棒,謝謝!

+0

你正在使用哪個JS框架?你在用打字稿嗎? –

+0

這些文件是否按照正確的順序從HTML中調用?你是否考慮過使用'defer'來保證腳本的順序? – remdevtec

回答

1

JavaScript類是ES6語言功能集的核心部分。

那些在IE中不直接支持,你需要先編譯你的代碼。

Babel是ES6的首選譯員。

相關問題