triggerHook(hookName) {
        const hooks = this.hooks[hookName];

        if (hooks && hooks.length) {
            const args = Array.prototype.slice.call(arguments);

            hooks.forEach((hook) => {
                // exclude hookName param
                hook.apply(null, args.slice(1));
            });
        }
        // else {
        //     console.warn(`Can't find hook name:${hookName}`);
        // }
    }
Trigger hook.

@param {string} hookName The hook name.
@param {Argument} args