Class declarations are not hoisted, so your example above: // no `export` keyword required here You should try it out; a test drive might be more enlightening than further conversation here. This means that modules have no control over how their dependencies are loaded. 1 – Interoperability w/ es5. lodash's iteration functions don't support ES6 iterators yet. Work to add something like