Cant call from an Array on createGraphics canvas

One possible approach:

let shapes = [s1, s2, s3];
let pg;
let sel;
let selection = 0;
let _x = 0;
let _y = 80;
let _w = 400;
let _h = 320;

function setup() { 
  createCanvas(400, 400);
  pg = createGraphics(50,50);
  background(209);
  textAlign(CENTER);
  sel = createSelect();
  sel.position(80, 10);
  sel.option('Shapes...');
  sel.option('circle');
  sel.option('square');
  sel.option('ellipse');
  sel.changed(selectShape);  
}

function draw() {
}

function mousePressed() {
  if(mouseX >= _x && mouseX <= _x + _w && mouseY >= _y && mouseY <= _y + _h){
   shapes[selection]();
  }
}

function selectShape(){
  let item = sel.value();
  switch(item){
    case 'circle': previewCircle(); selection = 0; break;     
    case 'square': previewSquare(); selection = 1; break;     
    case 'ellipse': previewEllipse(); selection = 2; break;     
  }
}

function previewCircle(){
  pg.background(255);
  pg.circle(25,25,25);
  image(pg,0,0);
}

function previewSquare(){
  pg.background(255);
  pg.square(5,5,25);
  image(pg,0,0);
}

function previewEllipse(){
  pg.background(255);
  pg.ellipse(25,25,25,50);
  image(pg,0,0);
}

function s1() {
  fill(255, 0, 0);
  circle(mouseX, mouseY, 75);  
}

function s2() {
  fill(0, 255, 0);
  square(mouseX, mouseY, 50);
}

function s3() {
  fill(0, 0, 255);
  ellipse(mouseX, mouseY, 50, 200);
}