TypeError:在未实现接口ServiceWorkerContainer的对象上调用'get ready'。在扩展navigator.serviceWorker对象

时间:2018-01-25 12:54:23

标签: javascript firefox console service-worker firefox-developer-tools

firefox version: 58.0

在firefox控制台中输入navigator.serviceWorker,然后点击ServiceWorkerContainer展开它。

并收到错误:TypeError: 'get ready' called on an object that does not implement interface ServiceWorkerContainer.

这是什么意思?它是一个火狐虫吗?

1 个答案:

答案 0 :(得分:1)

可能不是一个错误,但它很有趣。

当devtools尝试扩展它时,除了访问navigator.serviceWorker自己的属性之外,它还尝试访问其原型的属性(在devtools中显示特定于浏览器的{{1属性名称)。显然,在这样做的时候,它给出的__proto__不是this(我的猜测是原型对象本身,例如navigator.serviceWorker),以及{{1}的实现期望在原型上调用getter在继承对象上调用(松散地,"实例"),而不是原型本身。

如果您在Firefox控制台中执行此操作,则会收到相同的错误:

Object.getPrototypeOf(navigator.serviceWorker)

无需担心。 : - )