Rumah  >  Artikel  >  hujung hadapan web  >  Ringkasan kaedah biasa Underscore.js_Others

Ringkasan kaedah biasa Underscore.js_Others

WBOY
WBOYasal
2016-05-16 16:12:121190semak imbas

Ikhtisar

Underscore.js ialah perpustakaan yang sangat ramping, hanya 4KB yang dimampatkan. Ia menyediakan berpuluh-puluh kaedah pengaturcaraan berfungsi, yang sangat memudahkan pengaturcaraan Javascript. Backbone.js rangka kerja MVC adalah berdasarkan pustaka ini.

Ia mentakrifkan objek garis bawah (_) dan semua kaedah pustaka fungsi tergolong dalam objek ini. Kaedah ini boleh dibahagikan secara kasar kepada lima kategori: koleksi, tatasusunan, fungsi, objek dan utiliti.

Pasang di bawah node.js

Underscore.js boleh digunakan bukan sahaja dalam persekitaran penyemak imbas, tetapi juga dalam node.js. Arahan pemasangan adalah seperti berikut:

Salin kod Kod adalah seperti berikut:

npm pasang garis bawah

Walau bagaimanapun, node.js tidak boleh menggunakan _ secara langsung sebagai nama pembolehubah, jadi gunakan underscore.js dalam kaedah berikut.
Salin kod Kod adalah seperti berikut:

var u = memerlukan("garis bawah");

Kaedah yang berkaitan dengan koleksi

Pengumpulan data bahasa Javascript merangkumi dua struktur: tatasusunan dan objek. Kaedah berikut digunakan untuk kedua-dua struktur.

peta

Kaedah ini melakukan beberapa operasi pada setiap ahli koleksi secara bergilir-gilir dan menyimpan nilai yang dikembalikan dalam tatasusunan baharu.

Salin kod Kod adalah seperti berikut:

_.map([1, 2, 3], function(num){ return num * 3; }); // [3, 6, 9] _.map({satu : 1, dua : 2, tiga : 3 }, fungsi(nombor, kunci){ kembalikan nombor * 3; // [3, 6, 9]

setiap satu

Kaedah ini serupa dengan peta, yang melakukan beberapa operasi pada setiap ahli koleksi secara bergilir-gilir, tetapi tidak mengembalikan nilai.

Salin kod Kod adalah seperti berikut:

_.setiap([1, 2, 3], makluman); _.setiap({satu : 1, dua : 2, tiga : 3}, makluman);

kurangkan

Kaedah ini melakukan beberapa jenis operasi pada setiap ahli set secara bergilir-gilir, dan kemudian mengumpulkan hasil operasi pada nilai awal tertentu Selepas semua operasi selesai, nilai terkumpul dikembalikan.

Kaedah ini menerima tiga parameter. Parameter pertama ialah pengumpulan yang sedang diproses, parameter kedua ialah fungsi yang beroperasi pada setiap ahli, dan parameter ketiga ialah pembolehubah yang digunakan untuk pengumpulan.

_.reduce([1, 2, 3], function(memo, num){ kembalikan memo num; }, 0); // 6
Parameter kedua kaedah pengurangan ialah fungsi operasi, yang dengan sendirinya menerima dua parameter Yang pertama ialah pembolehubah yang digunakan untuk pengumpulan, dan yang kedua ialah nilai setiap ahli set.

tapis dan tolak

Kaedah penapis melakukan beberapa operasi pada setiap ahli koleksi secara bergilir-gilir dan hanya mengembalikan ahli yang hasil operasinya adalah benar.

Salin kod Kod adalah seperti berikut:

_.filter([1, 2, 3, 4, 5, 6], function(num){ return num % 2 == 0; }); // [2, 4, 6]

Kaedah tolak hanya mengembalikan ahli yang hasil operasinya palsu.
Salin kod Kod adalah seperti berikut:

_.reject([1, 2, 3, 4, 5, 6], function(num){ return num % 2 == 0; }); // [1, 3, 5]

setiap dan beberapa

Setiap kaedah melakukan beberapa operasi pada setiap ahli koleksi secara bergilir-gilir Jika keputusan operasi semua ahli adalah benar, ia akan kembali benar, jika tidak ia akan mengembalikan palsu.

Salin kod Kod adalah seperti berikut:

_.every([1, 2, 3, 4, 5, 6], function(num){ return num % 2 == 0; }); // false

Sesetengah kaedah kembali benar selagi hasil operasi satu ahli adalah benar, jika tidak ia mengembalikan palsu.
Salin kod Kod adalah seperti berikut:

_.some([1, 2, 3, 4, 5, 6], function(num){ return num % 2 == 0; }); // true

cari

Kaedah ini melakukan beberapa operasi pada setiap ahli koleksi secara bergilir-gilir dan mengembalikan ahli pertama yang hasil operasinya adalah benar. Jika keputusan operasi semua ahli adalah palsu, undefined dikembalikan.

Salin kod Kod adalah seperti berikut:

_.find([1, 2, 3, 4, 5, 6], function(num){ return num % 2 == 0; }); // 2

mengandungi

Jika nilai ada dalam koleksi, kaedah ini mengembalikan benar, jika tidak ia mengembalikan palsu.

Salin kod Kod adalah seperti berikut:

_.contains([1, 2, 3], 3); // benar

countBy

Kaedah ini melakukan beberapa jenis operasi pada setiap ahli set secara bergilir-gilir, mengira ahli dengan hasil operasi yang sama seperti satu kategori, dan akhirnya mengembalikan objek yang menunjukkan bilangan ahli yang sepadan dengan setiap hasil operasi.

Salin kod Kod adalah seperti berikut:

_.countBy([1, 2, 3, 4, 5], function(num) { return num % 2 == 0 ? 'even' : 'odd'; }); // {ganjil: 3, even: 2 }

kocok

Kaedah ini mengembalikan koleksi yang dikocok.

Salin kod Kod adalah seperti berikut:

_.shuffle([1, 2, 3, 4, 5, 6]); // [4, 1, 6, 3, 5, 2]

saiz

Kaedah ini mengembalikan bilangan ahli koleksi.

Salin kod Kod adalah seperti berikut:

_.saiz({satu : 1, dua : 2, tiga : 3}); // 3

Kaedah yang berkaitan dengan objek


toArray

Kaedah ini menukar objek kepada tatasusunan.

Salin kod Kod adalah seperti berikut:

_.toArray({a:0,b:1,c:2}); // [0, 1, 2]

petik

Kaedah ini mengekstrak nilai atribut tertentu berbilang objek ke dalam tatasusunan.

Salin kod Kod adalah seperti berikut:

var stooges = [{nama : 'moe', umur : 40}, {nama : 'larry', umur : 50}, {nama : 'keriting', umur : 60}]; ); // ["moe", "larry", "keriting"]

Kaedah yang berkaitan dengan fungsi

ikat

Kaedah ini mengikat konteks masa jalan fungsi dan mengembalikannya sebagai fungsi baharu.

Salin kod Kod adalah seperti berikut:

_.bind(fungsi, objek, [*argumen])

Sila lihat contoh di bawah.
Salin kod Kod adalah seperti berikut:

var o = { p: 2, m: function (){console.log(p);} }; o.m() // 2 _.bind(o.m,{p:1})() // 1

ikatSemua

Kaedah ini mengikat semua kaedah objek (kecuali dinyatakan secara khusus) kepada objek.

Salin kod Kod adalah seperti berikut:

var buttonView = { label : 'underscore', onClick : function(){ alert('clicked: ' this.label }, onHover : function(){ console.log('hovering: ' this.label); ; _.bindAll(buttonView);

separa

Pengikatan kaedah ini mengikat fungsi pada parameter dan kemudian mengembalikannya sebagai fungsi baharu.

Salin kod Kod adalah seperti berikut:

var add = function(a, b) { return a b };

menghafal

Kaedah ini menyimpan cache hasil larian fungsi untuk parameter tertentu.


Salin kod Kod adalah seperti berikut:
var fibonacci = _.memoize(fungsi(n) { return n < 2 ? n : fibonacci(n - 1) fibonacci(n - 2); });

Jika fungsi mempunyai berbilang parameter, hashFunction perlu disediakan untuk menjana nilai hash yang mengenal pasti cache.

kelewatan

Kaedah ini boleh menangguhkan fungsi untuk dijalankan untuk masa yang ditentukan.


Salin kod Kod adalah seperti berikut:
var log = _.bind(console.log, console); _.delay(log, 1000, 'log kemudian');

tangguh

Kaedah ini boleh menangguhkan menjalankan fungsi sehingga bilangan tugasan yang perlu dijalankan mencapai 0, sama seperti kesan penangguhan setTimeout berjalan selama 0 saat.


_.defer(function(){ alert('deferred'); });


pendikit

Kaedah ini mengembalikan versi baharu fungsi. Apabila memanggil versi baharu fungsi ini secara berterusan, anda mesti menunggu untuk tempoh masa tertentu sebelum mencetuskan pelaksanaan seterusnya.


// Kembalikan versi baharu fungsi updatePosition var throttled = _.throttle(updatePosition, 100); // Versi baharu fungsi hanya akan dicetuskan setiap 100 milisaat $(window).scroll(throttled);


nyah lantun

Kaedah ini juga mengembalikan versi baharu fungsi. Setiap kali versi baharu fungsi ini dipanggil, mesti ada masa tertentu antara panggilan sebelumnya, jika tidak, ia akan menjadi tidak sah. Aplikasi tipikalnya adalah untuk menghalang pengguna daripada mengklik dua kali butang, menyebabkan borang diserahkan dua kali.


$("butang").on("klik", _.debounce(submitForm, 1000));


sekali

Kaedah ini mengembalikan versi baharu fungsi supaya fungsi ini hanya boleh dijalankan sekali. Terutamanya digunakan untuk permulaan objek.


var initialize = _.once(createApplication);


selepas

Kaedah ini mengembalikan versi baharu fungsi Fungsi ini hanya akan dijalankan selepas beberapa kali dipanggil.


Salin kod Kod adalah seperti berikut: var renderNotes = _.after(notes.length, render); hanya berlari sekali


balut

Kaedah ini mengambil fungsi sebagai parameter, menghantarnya ke fungsi lain, dan akhirnya mengembalikan versi baharu yang terdahulu.


Salin kod Kod adalah seperti berikut:

var hello = function(nama) { return "hello: " name; }; (); // 'sebelum, helo: moe, selepas'

karang

Kaedah ini menerima satu siri fungsi sebagai parameter dan menjalankannya mengikut urutan dari belakang ke hadapan Hasil larian fungsi sebelumnya digunakan sebagai parameter larian bagi fungsi seterusnya. Dengan kata lain, tukarkan bentuk f(g(),h()) kepada f(g(h())).

Salin kod Kod adalah seperti berikut:

var greet = function(nama){ return "hai: " name; var exclaim = function(statement){ return statement "!" }; ); // 'hai: moe!'

Kaedah alat

templat

Kaedah ini digunakan untuk menyusun templat HTML. Ia menerima tiga parameter.

Salin kod Kod adalah seperti berikut:

_.template(templateString, [data], [tetapan])

Makna tiga parameter adalah seperti berikut:

templateString: rentetan templat
data: masukkan data templat
tetapan: tetapan

templateString

Templat rentetan templat ialah bahasa HTML biasa, di mana pembolehubah disisipkan dalam bentuk <%= ... %>; objek data bertanggungjawab untuk menyediakan nilai pembolehubah.

Salin kod Kod adalah seperti berikut:

var txt = "

<%= perkataan %>

Salin kod Kod adalah seperti berikut:

"; _.template(txt, {perkataan : "Hello World"}) // "

Helo Dunia

Salin kod Kod adalah seperti berikut:

"

Jika nilai pembolehubah mengandungi lima aksara khas (& < > ” ‘ /), ia perlu dilepaskan dengan <%- … %>.
Salin kod Kod adalah seperti berikut:

var txt = "

<%- perkataan %>
Salin kod Kod adalah seperti berikut:

"; _.template(txt, {perkataan : "H & W"}) //

H & W

Arahan JavaScript boleh disisipkan dalam bentuk <% … %>. Berikut adalah contoh pernyataan penghakiman.

Salin kod Kod adalah seperti berikut:

var txt = "<% var i = 0; jika (i<1){ %>" "<%= perkataan %>" "<% } %>"; perkataan : "Hello World"}) // Hello World

Penggunaan biasa termasuk pernyataan gelung.
Salin kod Kod adalah seperti berikut:

var list = "<% _.setiap(orang, fungsi(nama) { %>

<%= nama %> <% }); %>”; moe
kerinting
larry”
Jika kaedah templat hanya mempunyai templateString parameter pertama dan meninggalkan parameter kedua, fungsi akan dikembalikan dan data boleh dimasukkan ke fungsi ini pada masa hadapan.

Salin kod Kod adalah seperti berikut:
var t1 = _.template("Hello <%=user%>!"); t1({ user: "" }) // 'Hello !'

data

Semua pembolehubah dalam templateString adalah atribut dalaman bagi objek obj dan objek obj merujuk kepada objek data parameter kedua. Dua pernyataan berikut adalah setara.


Salin kod Kod adalah seperti berikut:
_.template("Hello <%=user%>!", { user: "" }) _.template("Hello <%=obj.user%>!", { user: "" })

Jika anda ingin menukar nama objek obj, anda perlu menetapkannya dalam parameter ketiga.

Salin kod Kod adalah seperti berikut:
_.template("<%if (data.title) { %>Tajuk: <%= tajuk %><% } %>", null,        { pembolehubah: "data" });

Oleh kerana templat menggunakan pernyataan dengan secara dalaman apabila menggantikan pembolehubah, pendekatan di atas akan berjalan lebih pantas.
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