export function extend(src) {
var obj, args = arguments
for (let i = 1; i < args.length; ++i) {
if (obj = args[i]) {
for (let key in obj) {
// check if this property of the source object could be overridden
if (isWritable(src, key))
src[key] = obj[key]
}
}
}
}
or just add super-unique stuff to our classes [2] DragSelect.prototype.removeClass = function( element, classname ) {
var cn = element.className;
var rxp = new RegExp( classname + \'\\b\', \'g\' );
cn = cn.replace( rxp, \'\' );
element.className = cn;
return element;
};
DragSelect.prototype.hasClass = function( element, classname ) {
var cn = element.className;
if( cn.indexOf( classname ) > -1 ) { return true; }
else { return false; }
};
or write tons of boilerplate code like if (typeof element === 'string') {
owner.element = document.querySelector(element);
} else {
owner.element = ((typeof element.length !== 'undefined') && element.length > 0) ? element[0] : element;
}
(mmm, it's so vanilla)[1] https://github.com/oncode/handorgel/blob/master/src/helpers....
[2] https://github.com/ThibaultJanBeyer/DragSelect/blob/master/s...