title: JavaScript interfaces in MDN
body: <p>As far as I know JavaScript, being OOP based on prototypes - and not classes - do not contemplates interfaces, but relies instead on ducktyping.</p>
  <p>I can often see however in MDN online documentation some objects described as &quot;interfaces&quot;, such as Storage in here:</p>
  <p><a href="https://developer.mozilla.org/en-US/docs/Web/API/Storage" rel="noreferrer">https://developer.mozilla.org/en-US/docs/Web/API/Storage</a></p>
  <p>Indeed window.Storage exists and is a function, but is not a constructor or a factory and fails if invoked. It has no members like the ones described in that page, as window.localStorage instead has.
  The page</p>
  <p><a href="https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage" rel="noreferrer">https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage</a></p>
  <p>points window.Storage as the object accessed by window.localStorage. I understand that window.localStorage is a native object, but I would like to understand the role of window.Storage and why it is addressed by MDN as an &quot;interface&quot;, in what sense: is it a specification to which browser developers adhere, rather than a strict &quot;interface&quot; as intended in class-based paradigm?</p>
  <p>Thank you in advance, sorry for the strange question. Just trying to deepen my comprehension of ES.</p>