Salve a tutti
Per mio uso e consumo sto creando una piccola scorciatoia per modificare dinamicamente molte proprietà di più elementi del dom contemporaneamente. L'idea è quella di utilizzare una sintassi abbreviata. Avrei potuto fare come fa jQuery, con una sintassi del tipo selettore(".classe").applicaProprieta({altezza: qualcosa, larghezza: qualcosa, etc. etc}), ma mi sembrava un inutile spreco di oggetti e di cicli. Così sono arrivato a una sintassi del tipo selettore(".classe").applicaProprieta(altezza, qualcosa)(larghezza, qualcosa)(etc. etc.).
Ne è venuto fuori questo abbozzo, che sembrerebbe funzionare abbastanza bene:

codice:
<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Esempio</title>
<script type="text/javascript">
// "use strict";

function setStyles (sProp, sVal) {
	for (var nEl = 0, nLen = this.nodes.length; nEl < nLen; this.nodes[nEl].style[sProp] = sVal, nEl++);
	this.follow = setStyles;
	return this;
}

function setAttribs (sAttrib, sVal) {
	for (var nEl = 0, nLen = this.nodes.length; nEl < nLen; this.nodes[nEl][sAttrib] = sVal, nEl++);
	this.follow = setAttribs;
	return this;
}

function getSelectors () { return this.selectors; };

function getNodes () { return this.nodes; };

function domQuery (sSelectors) {
	var oQuery = new Function("return arguments.callee.follow.apply(arguments.callee, arguments);");
	oQuery.selectors = sSelectors;
	oQuery.nodes = document.querySelectorAll(sSelectors);
	oQuery.attributes = setAttribs;
	oQuery.inlineStyle = setStyles;
	oQuery.follow = getNodes;
	oQuery.toString = getSelectors;
	oQuery.valueOf = getNodes;
	return oQuery;
}
</script>
</head>

<body>

<div class="testClass">Lorem ipsum</div>


Testo di prova</p>
<div class="testClass">dolor sit amet</div>

<script type="text/javascript">
domQuery(".testClass").attributes("lang", "it")("title", "Testo di prova").inlineStyle("backgroundColor", "black")("color", "white")("width", "100px")("height", "50px");
</script>
</body>

</html>
Il problema però sorge nell'eventualità di renderlo modulare. Gli oggetti che creo contengono attualmente due metodi utili: oggetto.inlineStyle() e oggetto.attributes(), che vengono assegnati loro dalla funzione domQuery(). Immaginiamo di voler aggiungere un altro metodo: dovrei modificare la funzione domQuery() per contemplarlo.
Quello che non riesco proprio a capire è se esiste un modo per assegnare un prototipo a questi miei oggetti di modo che modificando il prototipo a piacimento durante il caricamento della pagina decido quali metodi includere e quali no. Spero sia chiaro qual è il problema