Как создать свой класс
Добрый день, создал свой небольшой класс который вешает событие "клик" на свои объекты, в моем случае на кнопки. CSS-класс кнопки передается при создании объекта.
class btn { constructor (className) { this.className = className this.btn = document.querySelector(className) } btnClick () { this.btn.addEventListener('click', function () { console.log('Привет: ' + this.className) }) } } let btn1 = new btn('.btn-1') btn1.btnClick() let btn2 = new btn('.btn-2') btn2.btnClick() Вопрос , допустим у меня будет 10 методов, что делать чтобы их постоянно не вызывать для каждого объекта? Можно ли сделать так, чтобы эти методы автоматически запускались при создании объекта? |
constructor (className) { this.className = className this.btn = document.querySelector(className) this.btnClick() }0_o |
спасибо , вроде работает
не знал что в конструктор можно вызовы запихивать |
slark,
class btn { constructor(className) { this.className = className; this.btn = document.querySelector(className); this.btn.addEventListener('click', this.btnClick.bind(this)); this.btnClick() } btnClick() { console.log('Привет: ' + this.className) } } let btn1 = new btn('.btn-1') let btn2 = new btn('.btn-2') |
жесть круто спс, буду допиливать
|
Это ещё не круто, круто вот так) :
class btn { constructor(className) { this.className = className; this.btn = document.querySelector(className); this.btn.addEventListener('click', this); this.btnClick() } handleEvent(event) { const { type: [firstLetter, ...rest] } = event; return this[`btn${firstLetter.toUpperCase()}${rest.join('')}`](event); } btnClick() { console.log('Привет: ' + this.className) } } |
ну всё поплыл
|
Aetae,
:thanks: |
Часовой пояс GMT +3, время: 19:51. |