var Forms = {}; Forms.AutoInit = () => { for (let propertyName in Forms) { let property = Forms[propertyName]; // Call autoInit of all properties that are subclasses of Forms.BaseForm. // This does not include Forms.BaseForm itself. if (property.prototype instanceof Forms.BaseForm) { // Check if the static htmlClass property is defined. if (property.htmlClass === undefined) {return;} // Gather all HTML elements that have the `this.htmlClass` class // and do not have the no-autoinit class. let formElements = document.querySelectorAll(`.${property.htmlClass}:not(.no-autoinit)`); // Create an instance of this class for each form element. for (let formElement of formElements) {new property(formElement);} } } };