I think it would be cleaner to just pass the restore function literally.  And I think that webglCanvas should be named this.webglHelper or just this.webgl.
```
this.webgl = new WebGLCanvasHelper(canvas, lostCallback, function() {
    self.initWebGL();
    if (restoreCallback) 
      restoreCallback()
});
```