Underscore——JS函數庫
轉載請註明原文地址:https://www.cnblogs.com/ygj0930/p/10826065.html
underscore是什麽——它是一個js函數庫
jQuery統一了不同瀏覽器之間的DOM操作的差異,讓我們可以簡單地對DOM進行操作,而underscore則提供了一套完善的函數接口,讓我們更方便地在JavaScript中實現函數式編程。
Underscore.js是一個很精幹的庫,壓縮後只有6KB,它提供了100多個函數,彌補了js標準庫的不足,包括常用的: map, filter, invoke,函數綁定, JavaScript模板功能,創建快速索引, 強類型相等測試等等。
這些方法大致上可以分成:集合類操作函數(collection)、數組操作函數(array)、高階函數(function)、對象操作函數(object)和工具函數(utility)五大類。
underscore怎麽用
jQuery在加載時,會把自身綁定到唯一的全局變量$
上,underscore與其類似,會把自身綁定到唯一的全局變量_
上,這也是為啥它的名字叫underscore(下劃線)的原因。
Underscor.js定義了一個下劃線(_)對象,函數庫的所有方法都屬於這個對象。
$(選擇器)操作DOM,而_.fun()調用函數。
一:Collections操作函數
underscore為集合類對象提供了一致的接口。集合類是指Array和Object,暫不支持Map和Set。
二:Arrays操作函數
underscore為Array
提供了許多工具類方法,可以更方便快捷地操作Array
。
三:Functions高階函數
提供了大量JavaScript本身沒有的高階函數。
綁定運行環境和參數
在不同的運行環境下,javaScript函數內部的變量所在的上下文是不同的。這種特性會給程序帶來不確定性,為了解決這個問題,Underscore.js提供了兩個方法,用來給函數綁定上下文。
bind:十分強大,用的比較多
_.bind(function, object, *arguments)
綁定函數 function 到對象 object 上, 也就是無論何時調用函數, 函數裏的 this 都指向這個 object.
無論何時調用該函數, 函數裏的 this 都指向這個 object。
四:Objects操作函數
提供了大量針對Object的函數。
五:實用功能
六:Chaining鏈式語法
Underscore——JS函數庫