style() {
        return new ArgHandler("_RichText.style")
            .case('string', name => {
                // Get single value
                const getterName = `_get_${name}`;
                if (!this[getterName]) throw new Error(`_RichText.style: '${name}' is not a valid style`);
                return this[getterName]();
            })
            .case('array', names => {
                // Get list of values
                const values = {};
                names.forEach(name => {
                    values[name] = this.style(name);
                });
                return values;
            })
            .case(['string', '*'], (name, value) => {
                // Set a single value
                const setterName = `_set_${name}`;
                if (!this[setterName]) throw new Error(`_RichText.style: '${name}' is not a valid style`);
                return this[setterName](value);
            })
            .case('object', nameValues => {
                // Object of key value pairs to set
                for (const name in nameValues) {
                    if (!nameValues.hasOwnProperty(name)) continue;
                    const value = nameValues[name];
                    this.style(name, value);
                }
                return this;
            })
            .handle(arguments);
    }
Sets multiple styles.
@param {object.<string, *>} styles - Object whose keys are the style names and values are the styles to set.
@returns {RichTextFragment} This RichTextFragment.