Essentially, by javascript not being a very good Self.
[0] IIRC in Self the prototype is the object you copy, objects linked through parent slots are either mixins or traits.
[1] although it doesn't have a lobby, which makes the difference between traits and mixins, js's prototypes are probably closer to self's traits.
[2] that's being added in ES6, yay. But still single, boo.
However Eiffel, OCaml and Python MI implementations seem to be implemented in a more sane way.
If client-side JavaScript had this design, there would be no need for the DOM to have a special event mechanism that lives outside of method handling: DOM elements would simply have method handlers and the dispatch system would handle prototype and container inheritance.
See also HyperCard/HyperTalk...
I think it can be helpful to say that JavaScript is "like" Scheme if the purpose is to think harder about JavaScript and some of the consequences enabled by its features. On the other hand, I don't think JavaScript really is a Lisp, and it's a terrible idea to say so for the purpose of justifying all of its design choices.
On my case, the remark I made had more to do with the fact that many developers tend to be unaware that these concepts also exist in other languages and could learn a bit by seeing them on the languages they originated from.
Even when JavaScript only took tiny details from them.
I'll just show myself out...