Refactors View extend method.

The previous implementation was complicated to understand and ES3 stylish.
I reimplemented the function using a more modern / ES5 approach with Object.create