目录

  1. 主要更新
  2. 移除的方法
  3. 重命名的方法
  4. 分离出的方法
  5. 其他的小修改
  6. 总结

在 2016 年 1 月 12 日,Lo-Dash 迎来了半年来第一次大更新,也就是 4.0,这次更新了很多的内容,包括了不兼容更新方法分离函数重命名等等操作,下面我们来一一分析一下。

简单的翻译了一下官方的更新日志。

主要更新

  • 不再支持 Bower & Component,而是使用 npm,到发稿为止,已经无法在 bower 找到相关 Lo-Dash 的内容

  • 移除了对 [IE6-8](https://www.microsoft.com/en-us/WindowsForBusiness/End-of-IE-support) 的支持

  • 使用了 [es5-shim](https://github.com/es-shims/es5-shim) 或者 [es6-shim](https://github.com/es-shims/es6-shim)

  • 移除了大部分的 thisArg 参数

1
2
3
4
5
6
7
8
9
10
11
12
var objects = [{ 'a': 1 }, { 'a': 2 }];
var context = { 'b': 5 };

function callback(item) {
return item.a + this.b;
}

// in 3.10.1
_.map(objects, callback, context);

// in 4.0.0
_.map(objects, _.bind(callback, context));
  • node 中引用包的时候去除了类别的二级目录
1
2
3
4
5
// in 3.10.1
var chunk = require('lodash/array/chunk');

// in 4.0.0
var chunk = require('lodash/chunk');
  • 拆分出 _.max & _.min_.maxBy & _.minBy

  • 添加了足足 80 个方法

移除的方法

  • 移除了 _.support

  • 移除了 _.findWhere ,用 _.find 来替代(with iteratee shorthand)

  • 移除了 _.where ,用 _.filter 来替代(with iteratee shorthand)

  • 移除了 _.pluck ,用 _.map 来替代(with iteratee shorthand)

重命名的方法

  • 重命名 _.first_.head

  • 重命名 _.indexBy_.keyBy

  • 重命名 _.invoke_.invokeMap

  • 重命名 _.modArgs_.overArgs

  • 重命名 _.padLeft & _.padRight_.padStart & _.padEnd

  • 重命名 _.pairs_.为Pairs

  • 重命名 _.rest_.tail

  • 重命名 _.restParam_.rest

  • 重命名 _.sortByOrder_.orderBy

  • 重命名 _.trimLeft & _.trimRight_.trimStart & _.trimEnd

  • 重命名 _.trunc_.truncate

分离出的方法

也就是说从原来的方法中,将部分功能分离出来,成为一个新的方法。

  • 分离出 _.indexOf & _.lastIndexOf_.sortedIndexOf & _.sortedLastIndexOf

  • 分离出 _.max & _.min_.maxBy & _.minBy

  • 分离出 _.omit & _.pick_.omitBy & _.pickBy

  • 分离出 _.sample_.sampleSize

  • 分离出 _.sortedIndex_.sortedIndexBy

  • 分离出 _.sortedLastIndex_.sortedLastIndexBy

  • 分离出 _.uniq_.sortedUniq, _.sortedUniqBy, & _.uniqBy

其他的小修改

  • _.sortByAll 融合到了 _.sortBy

  • 改变这个类别 _.at“Object”

  • 改变这个类别 _.bindAll“Utility”

  • master 分支下,将 ./lodash.js 移动到 ./dist/lodash.js

  • npm 分支下,将 ./index.js 移动到 ./lodash.js

  • _.clone & _.flatten 函数的参数中删除了 isDeep 参数

  • _.bindAll 将不再支持绑定所有的函数,当没有名字传入的时候

总结

总之这次更新来的挺突然,感觉改动了好多东西,如果你的代码用了较多的话,暂时不建议去更新的。
更多内容呢详情请看官方 changelog

注释和共享

  • 第 1 页 共 1 页

XGHeaven

一个弱弱的码农


杭州电子科技大学学生一枚


Weifang Shandong, China