js高手進階之路:underscore原始碼經典(完)

亞里士朱德發表於2015-10-22

物件

keys 和 allKeys 這兩個函式很有對比意義。
前者是該物件的列舉屬性,先用預設函式處理,再考慮迴圈遍歷,最後考慮老版本瀏覽器的時候返回預設屬性解決方案。
後者是該物件的列舉屬性以及繼承的屬性,直接進行深度遍歷,然後考慮老版本瀏覽器的時候直接返回預設屬性解決方案。

Object 自帶的這個 keys 函式來判斷物件的列舉屬性很方便,不過也是ECMAScript5新增的函式。

hasOwnProperty 函式可以有效的判斷列舉屬性。

函式

一個閉包的好例子,把引數快取起來供延遲函式載入。

這個程式碼沒有太多新意,不過這個函式的使用方法很有意思。但用於多個非同步請求的時候非常有用。例如這個例子:

總結

underscore之所以經典,一方面它是一個JavaScript實用庫,提供了很多工具函式,可以有效地減少我們的程式碼量,尤其是在對陣列和物件的操作上;另一方面是其體現了JavaScript函數語言程式設計的特點,原始碼中隨處可見函式的巢狀。像函數語言程式設計的無狀態、高階程式設計這些特點和閉包都有著緊密的聯絡,所以下一階段希望能透過JavaScript閉包特性的學習一探函數語言程式設計的精妙。

打賞支援我寫出更多好文章,謝謝!

打賞作者

打賞支援我寫出更多好文章,謝謝!

任選一種支付方式

js高手進階之路:underscore原始碼經典(完) js高手進階之路:underscore原始碼經典(完)

相關文章