I'm doing some practice with javascript data structures and am essentially trying to extend Array.
class Collection {
    constructor(array){
        let collection = Object.create(Array.prototype);
        collection = (Array.apply(collection, array) || collection);
        collection.clear = () => {
            while(this.length > 0){
                this.pop();
            }
            return this
        };
        return(collection);
    }; }
The problem is that when I do the following
c = new Collection([1,2,3]);
c.clear();
c is still [1,2,3] when I am expecting [ ]. Why does modifying this not modify c? 
 
     
    