JSFiddle - React, Tailwind, and code Playground

by Luiz Carlos Vieira

HTML

<button onclick="alert(AbstractTest.Attribute);">Exibe Atributo</button>
<button onclick="alert(AbstractTest.Method());">Exibe Resultado do Método</button>
<button onclick="alert(testInstantiation());">Exibe Resultado da Instanciação</button>

JavaScript

// INICIO - Apenas para evitar poluir o espaço global
(function(){

    /**
     * Construtor da classe (é realmente necessário?).
     */
    var AbstractTest = function() {
    };

    /**
     * Atributo com o texto de teste.
     */
    AbstractTest.Attribute = "O atributo diz: Olá Planeta!";
    
    /**
     * Método que retorna o texto do teste.
     * @return String com o texto de teste.
     */
    AbstractTest.Method = function() {
        return "O método diz: Olá Mundo!";
    }

    // Atribui a classe ao escopo global 'window'
    window.AbstractTest = AbstractTest;

// FIM - Apenas para evitar poluir o espaço global
}());

/**
 * Função de teste de instanciação.
 * @return String com o texto de teste de uma instância criada.
 */
window.testInstantiation = function() {
    
    // A dúvida é sobre a possibilidade de impedir a execução dessa linha:
    var oTest = new AbstractTest();
    
    oTest.Attribute = "O atributo na nova instância diz: Olá Brasil!";
    return oTest.Attribute + " e " + AbstractTest.Attribute;
}