В настоящее время я пытаюсь обновить расширение chrome с помощью классов es6. Он отлично работает в контексте фоновых сценариев. Но я не могу получить доступ к этим классам на странице ui (т.е. Всплывающее расширение), используя chrome.extension.getBackgroundPage().
background.js
function Foo() { ... }
class Bar { ... }
popup.js
var bg = chrome.extension.getBackgroundPage();
new bg.Foo() // works
new bg.Bar() // Bar is undefined
Я нашел это обходное решение:
background.js
class Bar {}
var exports = { Bar : Bar };
popup.js
var bg = chrome.extension.getBackgroundPage();
new bg.exports.Bar() // works
Любые идеи, почему невозможно получить прямой доступ к классам через объект "bg"?
Любые идеи, почему невозможно получить прямой доступ к классам через объект "bg"?
Да: class
es не становятся свойствами глобального объекта, даже если они являются глобальными.
Вам не нужно, чтобы exports
объект для обходного пути, вы можете просто использовать
var Bar = class { … };
function
ES5?