различные JS реализации, препятствующие доступу к основной JS функции - PullRequest
0 голосов
/ 08 января 2020

вопрос

Существуют ли какие-либо различия в модульных javascript по сравнению со старыми самопризываемыми функциями и объявленными сценариями, которые могут помешать выполнению некоторого основного кода Javascript?

Это:

<!-- modern, modular js/html -->
<body>
   <script src="main.js" type="module"></script>
</body>

... против этого:

<body>
   <script src="somefile.js"></script> <!-- self invoking js -->
   <script src="anotherfile.js"></script> <!-- self invoking js -->
   <script src="anotherfile.js"></script> <!-- self invoking js -->
</body>

предисловие

Я работаю с несколько устаревшей JavaScript визуальной библиотекой под названием Next-UI . Большая часть документации, файлов и тому подобного не обновлялась в течение нескольких лет.

Во всех примерах для работы с ней используются старые объявления <script>, а самовозглашающиеся функции или имеют монолитный c основные файлы скриптов.

Я пытаюсь быть более дальновидным, используя современные модульные javascript, включая такие вещи, как:

  • <script src="./main.js" type="module"></script>
  • named & default import
  • именованные и экспорт по умолчанию

Я не использую 'use strict' нигде в моем коде, ни импортированный код

проблема

Я столкнулся с проблемой, из-за которой при копировании кода из примера он может работать в Codepen пример , но не будет работать в моей локальной среде. Я проследил проблему до класса , который я определяю:

nx.define(<class name>, <some nx.class to inherit>, { ...some new stuff and overrides })

Внутри вновь определенных процедур и методов вы можете увидеть что-то вроде этого:

nx.define("MyNode", nx.graphic.Topology.Node, {
   methods: {
     setModel: function(model) {
       this.inherited(model);
       var status = model.get('status') || 'normal';
       this.view('status').set('src', statusIconMap[status]);
     }
})

Когда он вызывает это this.inherited(model);, я могу проследить ошибку до этого бита кода this.inherited.caller.__super__;, где caller равно null

Единственные различия в коде и моем Проект заключается в том, что я строю его модульно и использую live-сервер для обслуживания через мой локальный хост.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...