I am little bit confused when and under what circumstances we'd choose classes
rather than functions
.
class Something {
constructor(text) {
this.text = text;
}
doSomthing() {
let checkBoolen = false;
document.querySelector(`.ss${this.text}`).addEventListener('mousedown', e => {
checkBoolen = true
console.log(this.text)
})
document.querySelector(`.ss${this.text}`).addEventListener('mouseup', e => {
if(checkBoolen === true) {
console.log('do something')
checkBoolen = false
setTimeout(function(){ console.log(checkBoolen)}, 1000)
}
})
}
newDIV() {
var btn = document.createElement("BUTTON");
btn.classList.add(`ss${this.text}`)
btn.innerHTML = `CLICK ${this.text}`;
document.body.appendChild(btn);
this.doSomthing()
}
}
let newdiv1 = new Something('1');
let newdiv2 = new Something('2');
newdiv1.newDIV();
newdiv2.newDIV();
<div id="app"></div>
now, if we use function
function createButton(name) {
let checkBoolen = false;
var btn = document.createElement("BUTTON");
btn.classList.add(`ss${name}`)
btn.innerHTML = `CLICK ${name}`;
document.body.appendChild(btn);
document.querySelector(`.ss${name}`).addEventListener('mousedown', e => {
checkBoolen = true
console.log(name)
})
document.querySelector(`.ss${name}`).addEventListener('mouseup', e => {
if(checkBoolen === true) {
console.log('do something')
checkBoolen = false
setTimeout(function(){ console.log(checkBoolen)}, 1000)
}
})
}
createButton('1')
createButton('2')
They both do the same thing, so I am a bit confused should I use class
or function
? Thanks