Rumah >hujung hadapan web >tutorial js >Analisis penggunaan tanda dolar $ dalam rangka kerja prototaip_kemahiran javascript

Analisis penggunaan tanda dolar $ dalam rangka kerja prototaip_kemahiran javascript

WBOY
WBOYasal
2016-05-16 15:18:461179semak imbas

Contoh dalam artikel ini menerangkan penggunaan tanda dolar $ dalam rangka kerja prototaip. Kongsikan dengan semua orang untuk rujukan anda, butirannya adalah seperti berikut:

Prototaip ialah alat penting untuk pelaksanaan berorientasikan objek dan rangka kerja yang baik untuk JavaScript.
Sesiapa yang menggunakan jquery tahu bahawa terdapat tanda $ dolar dalam jquery, dan terdapat juga $ dalam prototaip Apakah perbezaan antara mereka?

1. Penggunaan $() dalam prototaip

Prototaip ditulis sebagai $("test") atau $$("#test"), yang bersamaan dengan document.getElementById("test");
dalam js kaedah penulisan jqueryp $("#test"), yang juga bersamaan dengan document.getElementById("test");

dalam js

2. Penggunaan $$() dalam prototaip

tulisan jquery $("div") adalah bersamaan dengan document.getElementsByTagName('div')
Jika prototaip juga ingin mendapatkan semua elemen div dalam halaman, ia tidak boleh ditulis seperti ini.
Cara untuk menulis prototaip ialah $("div") yang bersamaan dengan document.getElementById("div")
Cara untuk menulis prototaip ialah $$("div") yang bersamaan dengan document.getElementsByTagName('div')
Kaedah penulisan prototaip $$("input[value=tank]") mendapat label yang nilai kotak inputnya ialah tangki pada halaman Ia sebenarnya serupa dengan jquery, kecuali terdapat simbol $ tambahan

3. Penggunaan $A() dalam prototaip

$A digunakan terutamanya untuk menukar mana-mana koleksi yang boleh digunakan sebagai tatasusunan (seperti NodeList, HTMLCollection yang dikembalikan oleh banyak kaedah DOM atau sifat argumen objek fungsi) kepada objek Tatasusunan sebenar. Empat kaedah berikut boleh menyembunyikan teg div dalam halaman

$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(); 
}) 

Jika TypeError: element.style is undefined { message="element.style is undefined", lagi...} muncul dalam contoh, sila tingkatkan versi prototaip anda

4. Penggunaan $F() dalam prototaip

Secara peribadi, saya rasa penggunaan $F direka bentuk untuk memudahkan anda mendapatkan semula data borang, tetapi ia agak mudah kerana ia hanya boleh diperoleh melalui ID

8a21ecc55e46a115916a47e2e30390b2
$F("nama") Betul

df613966d3e0cbc3aae824c952059f60
$F("name") Salah, TypeError: element is null { message="element is null", lagi...}

5. Penggunaan $H() dalam prototaip

Apabila anda memasukkan objek sebagai parameter fungsi, $H akan memasukkan objek ke dalam objek cincang proprietari prototaip. $H berasa seperti penukar, mencetuskan kesan perubahan situasi

$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. Penggunaan $R() dalam prototaip

Fungsi $R dan pembina asal mempunyai parameter yang sama: mula dan akhir masing-masing mewakili nilai had bawah dan nilai had atas (jenis kedua-dua parameter mesti konsisten), dan eksklusif mewakili sama ada untuk mengecualikan nilai atas nilai had (hujung parameter) . Nilai had atas tidak dikecualikan secara lalai.

Kejadian $R menerangkan satu siri nilai yang berubah mengikut peraturan tertentu, seperti nombor, teks atau jenis lain yang menyokong secara semantik terbitan nilai bersebelahan

Paling mudah untuk orang ingat jika mereka boleh menerangkannya melalui contoh

$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 menyimpulkan objek $R mengikut peraturan, $A menukar objek kepada tatasusunan dan menggunakan tanda, untuk menukar tatasusunan kepada rentetan.

$R(0, 10).each(function(value){ 
 alert(value*value); 
}); 
//结果和上面的一样的,但是each解释的对像是不一样的。 
$A($R(0, 10)).each(function(value){ 
 alert(value*value); 
}); 

Jika ralat sedemikian dilaporkan, TypeError: value.succ bukan fungsi { message="value.succ is not a function", lagi...}, sila tingkatkan

7. Penggunaan $w() dalam prototaip

$w menukar rentetan dengan ruang sebagai pembatas kepada tatasusunan Fungsi root php's explode(" ",$string);

$w("aa bb").join(',')

Jika ralat sedemikian dilaporkan, ReferenceError: $w tidak ditakrifkan { message="$w is not definition", lagi...}, sila tingkatkan

Saya harap artikel ini akan membantu semua orang dalam pengaturcaraan JavaScript.

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn