无法在chrome扩展中获得对es6类的引用

时间:2017-12-09 20:35:59

标签: javascript google-chrome-extension ecmascript-6

我目前正在尝试使用es6类更新我的chrome扩展程序。它在后台脚本的上下文中工作正常。但我无法使用chrome.extension.getBackgroundPage()在ui页面(即扩展程序的弹出窗口)中访问这些类。

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'直接访问课程。对象

1 个答案:

答案 0 :(得分:2)

  

为什么不能通过'bg'对象直接访问类?

是:class不要become properties of the global object even if they are global

您不需要exports对象来解决此问题,您只需使用

即可
var Bar = class { … };