Voglio sapere se estendere dinamicamente il prototipo di una funzione è una cattiva pratica. Sto considerando di farlo utilizzando un metodo statico che riceve il nome della proprietà e la funzione da aggiungere al prototipo.JavaScript: si sta estendendo il prototipo dinamicamente a una cattiva pratica?
È una cattiva pratica?
function Test() {
this.condition = false;
}
Test.extend = function(id, task) {
this.prototype[id] = function() {
return task.apply(this, arguments);
};
};
Solo se si abusa al punto in cui tenere traccia è difficile (che, francamente, di solito è ciò che accade). Personalmente, preferisco non raggiungere quel livello di meta nella mia programmazione. –
È una cattiva pratica perché il tuo codice non funziona :-) Dovrebbe essere 'task' invece di' this.task', e dovrebbe essere abbreviato in 'this.prototype [id] = task;' – Bergi
I ' Non sono sicuro, ma suppongo che ci siano alcuni problemi di prestazioni con '.apply'. – Rajesh