Object-oriented JavaScript template

This template make use of OOP techniques to encapsulate functionalities, producing reusable components.

define([ 'jquery' ], function ( $ ) {
	'use strict';	var example = function ( $el, options ) {
		this.$el = $el;
		this.defaults = {
			selectors: {
			},
			classes: {
				hidden: 'hidden',
				active: 'active'
			}
		};		this.settings = $.extend( {}, this.defaults, options );
	};	Example.prototype = {
		init: function () {			// Only apply if initialisation has been done outside
			// of the each loop in main.js
			if ( !this.$el.length ) {
				return false;
			}			this.bindEvents();			return this;
		},		bindEvents: function () {
			this.$el.on( 'click', this.handleActive );
			this.$el.on( 'keydown', this.handleKeydown );
		},		handleActive: function () {
		},		handleKeydown: function () {
		}
	};	return example;
});