摘要:学习冴羽的博客研究 underscore 的防冲突与 Utility Functions
_.noConflict
防冲突:在执行前先将_
对象保存下来,然后在执行 _.noConflict 函数时将存储的_
对象赋给全局对象,最后返回 underscore 对象
1 | var previousUnderscore = root._ |
使用:
1 | var $ = _.noConflict() |
_.identity
返回传入的值
1 | _.identity = function(value) { |
_.constant
_.constant 函数接收参数 value ,然后返回一个返回该 value 的函数
1 | _.constan = function(value) { |
_.noop
_.noop 是一个空函数
1 | _.noop = function() {}; |
使用 _.noop 可以作为默认值,省去是否存在的判断:
1 | // 不使用 _.noop |
deepGet
用于获得深层次的属性值,如果其中一层没有找到,返回 undefined
1 | var deepGet = function(obj, path) { |
使用:
1 | var test = { |
shallowProperty
shallowProperty 函数接受一个键名,返回一个返回该键值的函数
1 | var shallowProperty = function(key) { |
使用 shallowProperty 可以更加便捷:
1 | var list = [ |
_.property
_.property 结合了 deepGet 和 shallowProperty
1 | _.property = function(path) { |
_.propertyOf
_.propertyOf 接收一个对象,然后返回一个函数,这个函数将返回一个提供的属性的值。
1 | _.propertyOf = function(obj) { |
_.random
_.random 回一个 min 和 max 之间的随机整数,该随机值有可能是 min 或 max
1 | _.random = function(min, max) { |