I first learned about destructuring through Clojure. Lately I've been working on a Firefox extension and discovered that Firefox JavaScript 1.6 supports destructuring (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe...), too, and is very pleasant to use. I hope it makes it into the ECMAScript 6 standard.