Hallo,
heute habe ich mir mal ohne Not angesehen, wie ich es machen müsste, wenn ich statt statt einer Funktion eine Klasse nutze, was ich bisher mangels Anlass noch nie gemacht habe.
Also habe ich mir diese jQuery nutzende Funktion rausgesucht und die - soweit ich es verstehe - umgeschrieben.
Funktion:
Klasse:
Jetzt frage ich mich folgendes:
1) Ist das überhaupt vernünftig umgeschrieben? Kann da mal jemand einen Gegenvorschlag machen?
2) In der Klasse kann ich anscheinend nicht mehr allgemein gültig var that = this; schreiben, sondern muss das jetzt in die Funktion init() mit aufnehmen.
Oder was wäre da der bessere Weg.
3) Die Funktion oben ist sozusagen typisch für mich und der Klassenansatz bringt mir anscheinend keine Vorteile.
Mir scheint, ich müsste meinen Progammierstil insgesamt überdenken, um dem Einsatz der Klasse etwas abzugewinnen, oder?
heute habe ich mir mal ohne Not angesehen, wie ich es machen müsste, wenn ich statt statt einer Funktion eine Klasse nutze, was ich bisher mangels Anlass noch nie gemacht habe.
Also habe ich mir diese jQuery nutzende Funktion rausgesucht und die - soweit ich es verstehe - umgeschrieben.
Funktion:
Code:
function insurance () { var that = this; this.label = $('#label-insurance'); this.chkbox = $('input[name="insurance"]'); if (this.label.length > 0) { this.chkbox.on('change', function () { if ($(this).prop('checked')) { that.label.html(that.label.data('with')); } else { that.label.html(that.label.data('without')); } $('#calcButton').trigger('click'); }); } }
Code:
class insurance { constructor() { this.label = $('#label-insurance'); this.chkbox = $('input[name="insurance"]'); this.init(); } init() { if (this.label.length > 0) { var that = this; this.chkbox.on('change', function () { if ($(this).prop('checked')) { that.label.html(that.label.data('with')); } else { that.label.html(that.label.data('without')); } $('#calcButton').trigger('click'); }); } } }
1) Ist das überhaupt vernünftig umgeschrieben? Kann da mal jemand einen Gegenvorschlag machen?
2) In der Klasse kann ich anscheinend nicht mehr allgemein gültig var that = this; schreiben, sondern muss das jetzt in die Funktion init() mit aufnehmen.
Oder was wäre da der bessere Weg.
3) Die Funktion oben ist sozusagen typisch für mich und der Klassenansatz bringt mir anscheinend keine Vorteile.
Mir scheint, ich müsste meinen Progammierstil insgesamt überdenken, um dem Einsatz der Klasse etwas abzugewinnen, oder?
Kommentar