volte vorrei aggiungere un comportamento a JS stringa comeÈ possibile estendere un oggetto javascript e quindi "cancellare" le estensioni dopo l'uso?
String.prototype.camelize = function() {
return this.replace (/(?:^|[-])(\w)/g, function (, c) {
return c ? c.toUpperCase() : '';
});
};
Tuttavia è comunemente accettato che la modifica tipo primitivo è una pessima idea.
C'è qualche schema che posso seguire per assegnare temporaneamente funzioni a un tipo e rimuoverlo dopo l'uso? O qualsiasi cosa simile alla 'classe < < obj' di ruby che modifica il prototipo di un solo oggetto?
EDIT: Il punto di farlo è quello di essere in grado di utilizzare la sintassi come
name = s.camelize();
o
se (s.hyphenize() Lunghezza < 8.);
Quindi, per favore, non preoccuparti dell'approccio statico.
Inoltre, questa domanda è in realtà più concentrata su come si dovrebbe manipolare oggetti js per fare di più con meno effetti collaterali.
cosa c'è che non va con una semplice funzione senza modificare nulla? – Onheiron
Perché devi farlo se è solo temporaneo? Oppure, perché no 'function camelize() {...}'? – Leo