据我所知,JavaScript基于原型而不是类的面向对象编程,并不考虑接口,而是依赖于鸭子类型。然而,我经常在MDN在线文档中看到一些被描述为“接口”的对象,比如这里的Storage。
https://developer.mozilla.org/en-US/docs/Web/API/Storage
的确,window.Storage 存在且是一个函数,但它既不是构造函数也不是工厂函数,如果被调用就会失败。它没有像页面中描述的那样的成员,而是像 window.localStorage 一样具有这些成员。
https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage
将window.Storage作为window.localStorage访问的对象。我知道window.localStorage是一个原生对象,但我想了解window.Storage的作用,以及为什么MDN将其称为“接口”,在什么意义上:它是浏览器开发人员遵循的规范,而不是类基范例中所预期的严格“接口”吗?
提前感谢,抱歉问题有点奇怪。只是试图加深对ES的理解。