Cómo entender y simplificar la función más cercana de jQuery
Lo último:? función(?selector?contexto?)?{var? ¿retirado? =?[],?Yo,? yo,? ¿canalla? =?este[0];? //Arrayif? (?jQuery.isArray(?Selector?)?)?{// ¿La lógica de filtrado de esta rama es básicamente la misma que la de la siguiente var? fósforo,? ¿Selector, coincide? =?{}, nivel? =?1;? ¿si? (?cur?&&?selector.length?)?{para? (?i?=?0,?l?=?selector.length;?i?<?l;?i++?)?{selector? =?Selector[I];? ¿si? (?!partido[?selector?]?)?{partido[? ¿Selector? ]?=?prueba de posición(?selector?)jQuery(?selector,?context?||?este.fondo?)?:selector;}}?cuándo? (?cur?& amp& amp?cur.ownerDocument?& amp& amp?cur?!==?context?)?{para? (?selector?en?partido?)?{partido? =?coincidencia[? ¿Selector? ];//Creo que es ineficaz crear nuevos objetos jQuery con frecuencia y utilizar métodos tan complejos. ¿si? (?match.jquery?match.index(?cur?)?& gt?-1?:?jQuery(?cur?).is(?match?)?)?{ret.push({?selector:? selector ,?elem:?nivel?});}}?cur? =?cur.parentNodelevel++;}}?Regresión? ret}?//?Stringvar? pos? =?prueba de posición(?selector?)?||?¿qué tipo? ¿Selector? ! ==?"cadena"jQuery(?selector?context?||?este.fondo?)?:0;? ¿para qué? (?i?=?0,?l?=?this.length;?i?<?l;?i++?)?{cur? =?Este [yo];? ¿cuando? (?cur?)?{si? (?pos? índice de posición (actual)?>?-1?:?jquery . find .matchselector(cur, selector)?)?{ret.push(?cur?); }?¿De lo contrario? {¿canalla? =?cur.parentNodeif? (?!cur?||?!cur.ownerDocument?||?cur?===?context?||?cur.nodeType?===?11?)?{ break}}}}?ret? =?ret .longitud? >? 1?jQuery.unique(?ret?)?:?ret? ¿devolver? this.pushStack(?ret,?"reciente",?selector?);},