OOP JavaScript - Crear objeto Div personalizado

Estoy empezando con OOP en JavaScript. Quiero crear un "panel" personalizado Aquí está lo que tengo hasta ahora:

function ShinyPanel(css, attributes)
{
    this.container = $(document.createElement("div")).addClass("shinyPanel");

    this.titleBar = $(document.createElement("div")).addClass("shinyPanelTitleBar").appendTo(this.container);
    this.topShine = $(document.createElement("div")).addClass("shinyPanelTopShine").appendTo(this.container);
    this.leftShine = $(document.createElement("div")).addClass("shinyPanelLeftShine").appendTo(this.container);
    this.content = $(document.createElement("div")).addClass("shinyPanelContent").appendTo(this.container);

    if (!css) css = {};
    if (!attributes) attributes = {};

    this.css = css;
    $(this.container).css(this.css);

    this.title = attributes["title"];
    $(this.titleBar).html(this.title);
}

Ahora puedo crear una instancia de este objeto y agregarlo al cuerpo a través de algo como esto:

var panel = new ShinyPanel({position:"absolute", top:"25%", width:"300px", height:"200px"}, {title:"Test"});
$("body").append(panel.container);

Mi pregunta es, ¿hay alguna manera de que yo haga del objeto en sí mismo un div, eliminando así la necesidad de un div "contenedor"? Entonces podría simplemente llamar$("body").append(panel);.

No es mucho problema para mí tener el div contenedor, es más para mí ... querer aprender la manera correcta de hacer las cosas.

Lo intentéthis = document.createElement("div");, pero tengo un errorinvalid assignment left-hand side.

Respuestas a la pregunta(4)

Su respuesta a la pregunta