È un po 'speculativo, ma qui è il mio colpo.
jQuery abbraccia pienamente la natura funzionale di javascript. Questo è ciò che lo rende così fantastico, ma può lasciare che molti sviluppatori si grattino la testa quando provengono da un linguaggio puramente OO come java. Sembra rompere tutte le convenzioni e le buone pratiche.
La lingua funzionale tende a porre l'accento su una sintassi dichiarativa. Tende a leggere come una dichiarazione di un fatto piuttosto che come comandi. Esempio
var eligible = customers.where(c => c.age > 30);
che può essere letto come "il cliente idoneo sono i clienti di età superiore ai 30". Per contrasto, la lingua imperativa viene letta come una sequenza di comando
for (customer in customers)
if (customer.age > 30)
eligible.add(customer)
Può essere letto come "Verifica di ogni cliente e se la loro età è superiore a 30, aggiungili alla raccolta idonea"
L'aggiunta di un'operazione a set
e get
farebbe sembrare jQuery una libreria imperativa. Puoi costringere il modo di leggere le seguenti dichiarazioni
// The element tag have an html of <p>hello</p>
$("#element").html("<p>hello</p>");
// content represent the html of the element tag
var content = $("#element").html();
//Imperative style
// Set the element tag to an inner html of <p>hello</p>
$("#element").setHtml("<p>hello</p>");
//Get the html of #element, and put it in the content variable
var content = $("#element").getHtml();
Tenendo fuori dalle azioni jQuery api il verbo delle azioni, l'hanno fatto sentire come un'API dichiarativa. Dà un tocco coerente e funzionale alla biblioteca. Ecco perché penso che abbiano sovraccaricato le parole chiave.