2017-01-27 6 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 и других браузерах? Любые возможные исправления?

У меня также есть аналогичная проблема в другой области моего кода, где я пытаюсь вызвать другой класс javascript из файла cshtml, и он также говорит, что он не определен, но только в ie. Любое понимание этого было бы здорово, спасибо!

+0

Какая система JS вы используете? И вы используете машинопись? –

+0

Вызывается ли эти файлы из HTML в правильном порядке? Считаете ли вы использование 'defer' для обеспечения порядка написания скриптов? – remdevtec

ответ

1

Классы JavaScript являются основной частью набора функций языка ES6.

Те же, которые не поддерживаются непосредственно в IE, вам необходимо сначала передать ваш код.

Babel - переходник для ES6.