ti sei spiegato benissimo... conosco il JAVA e so cosa vuol dire estendere una classe...

ho cercato di spiegartelo ma forse mi sono spiegato male

allora:

ArrayFico = Array;
/* eredita tutte le caratteristiche di Array */

ArrayFico.prototype.pop = function(..) { ... };
/* aggiungi nuovi metodi alla classe estesa */

aF = new ArrayFico("pippo","pluto","topolino","minnie");

aF.length; //funziona
aF.pop(); //funziona

cosa vuoi di più dalla vita?

per la prima domanda
this.value = new Array();
qui lo stai trattando come un Oggetto...
con gli array dovresti solo fare
this[intero] = ...;
se provi a fare un "for in" te ne rendi subito conto

ciao!