I think I've figured it out. Instead of this:
$(newControlPanel).addControl(smartyControlPanel);
Access the function by calling it as a parameter like this:
newControlPanel.controlPanel("addControl", smartyControlPanel);
And I also converted my code to have be based of a function for the first prototype:
var ControlPanel = function(options, element){
this.options = options;
this.element = element;
this._init();
};
ControlPanel.prototype = {
//Everything else in here
}
Though having to call it as a parameter is a lot less easy to understand than it was calling it directly as a function.