JavaScript component to display ephemeral notifications
I think you could improve a lot. :)

I don't think you need an init function, it just add stuff and the code is difficult
to follow and understand.

The main function is yet your initialization.

Even the other functions are a big overhead and make the code complicated.

I put inline comment to explain the code.

function notification(notificationType, message, delay) {
  // you don't need to attach things to this, just use variables.
  const classNameSelector = 'notification';
  const disappearingClass = 'disappei'
  if ($('.'+classNameSelector).length === 0)
    return; // if component is still there you want to avoid recreate it, but
            // so don't need to load all the code, just exit at the beginning.

  // what about place in a template or in a hidden div?
  const _notification = $('&lt;div class=" ' + classNameSelector + ' ' +
    notificationType + '"&gt;&lt;p&gt;' + message +
    '&lt;/p&gt;&lt;i class="fa fa-times fa-lg close-notification"&gt;&lt;/i&gt;&lt;/div&gt;');

  $(body).append(_notification);

  // here I'm a bit confuse, you have a delay, but you set an arbitrary number
  // to remove the notification box: 1200
  // So I changed it in a way that works for me:
  const startDiappearing = delay / 3
  const disappearingAll = delay - startDiappearing

  // the first timeout is startDisappearing
  let removeTimeout;
  const disappearingTimeOut = setTimeout(function() {
    _notification.addClass('disappearing');
    removeTimeout = setTimeout(function () {
        _notification.remove();
    }, disappearingAll);
  }, startDiappearing);

  // Last but not last the bind to the click event
  _notification.on('click', function() {
    clearTimeout(disappearingTimeOut);
    clearTimeout(removeTimeout);

    _notification.remove();
  });
}


I know you feel there is some duplication of remove() but is just a lib call and just one.

The purpose here is made something simple and short as effectively simple and short, avoiding overengineering some part of code.