Heim > Artikel > Web-Frontend > Nutzungsanalyse des Dollarzeichens $ in Prototyp-Framework_Javascript-Fähigkeiten
Das Beispiel in diesem Artikel beschreibt die Verwendung des Dollarzeichens $ im Prototyp-Framework. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:
Prototype ist ein wichtiges Werkzeug für die objektorientierte Implementierung und ein gutes Framework für JavaScript.
Jeder, der jquery verwendet, weiß, dass es in jquery ein $-Dollar-Zeichen gibt und dass es auch $ im Prototyp gibt. Was ist der Unterschied zwischen ihnen?
1. Verwendung von $() im Prototyp
Prototype wird als $("test") oder $$("#test") geschrieben, was document.getElementById("test");
in js entspricht
jqueryp-Schreibmethode $("#test"), die auch document.getElementById("test");
2. Verwendung von $$() im Prototyp
JQuery-Schreiben von $("div") entspricht document.getElementsByTagName('div')
Wenn der Prototyp auch einfach alle div-Elemente auf der Seite abrufen möchte, kann er nicht so geschrieben werden.
Die Art und Weise, einen Prototyp zu schreiben, ist $("div"), was document.getElementById("div")
entspricht
Die Art und Weise, einen Prototyp zu schreiben, ist $$("div"), was document.getElementsByTagName('div')
entspricht
Die prototypische Schreibmethode $$("input[value=tank]") ruft die Beschriftung ab, deren Eingabefeldwert tank auf der Seite ist. Sie ähnelt tatsächlich jquery, außer dass es ein zusätzliches $-Symbol
3. Verwendung von $A() im Prototyp
$A wird hauptsächlich verwendet, um jede Sammlung, die als Array verwendet werden kann (z. B. eine NodeList, die von vielen DOM-Methoden zurückgegebene HTMLCollection oder die Argumenteigenschaft eines Funktionsobjekts), in ein echtes Array-Objekt zu konvertieren. Die folgenden vier Methoden können das div-Tag auf der Seite
ausblenden$A($$('div')).each(Element.hide); $A($$('div')).map(Element.extend).invoke("hide"); //从思想上来看,下面二种写法,我在用jquery时,也经常用 $A($$('div')).each(function(name,index){ name.style.display='none'; alert(name.innerHTML); }) $A($$('div')).each(function(name,index){ $(name).hide(); })
Wenn im Beispiel TypeError: element.style ist undefiniert { message="element.style ist undefiniert", mehr...} erscheint, aktualisieren Sie bitte Ihre Prototypversion
4. Verwendung von $F() im Prototyp
Ich persönlich denke, dass die Verwendung von $F dazu dient, das Abrufen von Formulardaten zu erleichtern, aber es ist relativ einfach, da es nur per ID abgerufen werden kann
8a21ecc55e46a115916a47e2e30390b2
$F("name") Richtig
df613966d3e0cbc3aae824c952059f60
$F("name") Falsch, TypeError: Element ist null { message="element ist null", mehr...}
5. Verwendung von $H() im Prototyp
Wenn Sie ein Objekt als Parameter der Funktion übergeben, gibt $H das Objekt in das proprietäre Hash-Objekt eines Prototyps ein. $H fühlt sich an wie ein Konverter, der eine Situation verändernde Wirkung auslöst
$H({name:'tank',sex:1,height:'170cm'}).toArray() [["name", "tank"], ["sex", 1], ["height", "170cm"]] $H({name:'tank',sex:1,height:'170cm'}).toQueryString() "name=tank&sex=1&height=170cm"
6. Verwendung von $R() im Prototyp
Die $R-Funktion und der ursprüngliche Konstruktor haben genau die gleichen Parameter: Start und Ende stellen den unteren Grenzwert bzw. den oberen Grenzwert dar (die Typen der beiden Parameter müssen konsistent sein), und exklusiv gibt an, ob der obere ausgeschlossen werden soll Grenzwert (Parameterende) . Der obere Grenzwert ist standardmäßig nicht ausgeschlossen.
Instanzen von $R beschreiben eine Reihe von Werten, die sich gemäß bestimmten Regeln ändern, z. B. Zahlen, Text oder andere Typen, die die Ableitung benachbarter Werte semantisch unterstützen
Es fällt den Leuten am einfachsten, sich daran zu erinnern, wenn sie es anhand von Beispielen erklären können
$A($R("a","z",true)).join(',') //加了参数true "a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y" $A($R("a","z")).join(',') //没有加 "a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z"
$R leitet ein $R-Objekt gemäß den Regeln ab, $A wandelt das Objekt in ein Array um und verwendet das Vorzeichen, um das Array in einen String umzuwandeln.
$R(0, 10).each(function(value){ alert(value*value); }); //结果和上面的一样的,但是each解释的对像是不一样的。 $A($R(0, 10)).each(function(value){ alert(value*value); });
Wenn ein solcher Fehler gemeldet wird, TypeError: value.succ is not a function { message="value.succ is not a function", more...}, bitte aktualisieren Sie
7. Verwendung von $w() im Prototyp
$w konvertiert einen String mit Leerzeichen als Trennzeichen in ein Array. Die Funktion von root php ist dieselbe und gezielter.
$w("aa bb").join(',')
Wenn ein solcher Fehler gemeldet wird, ReferenceError: $w ist nicht definiert { message="$w ist nicht definiert", mehr...}, bitte aktualisieren
Ich hoffe, dass dieser Artikel für alle hilfreich ist, die sich mit der JavaScript-Programmierung befassen.