什么时候使用通话或在Javscript中使用通话有什么好处?

蒂姆

我正在浏览Ramda.JS的源代码,它是Java开发人员的功能库。这几行代码使我有些困惑。

var sort = _curry2(function sort(comparator, list) {
  return Array.prototype.slice.call(list, 0).sort(comparator);
});

我的问题是

  • Array.prototype.slice.call(list, 0)应该与完全相同list.slice(0),但是第二种方法要短得多
  • 为什么.call在这里使用,为什么不使用第二种方法呢?
    • 在这里使用通话有什么好处吗?

参考文献


更新

非常感谢@VLAZ

该屏幕截图来自他在评论中建议的内容。

a.slice(0)并且Array.prototype.slice.call(a, 0)在非数组对象上有很大的不同。

安德烈

值得注意的是,不是数组/字符串并且没有方法,使用Array.prototype.slice.call(arr, 0)overarr.slice()不会引发错误arrarrslice

也许他们想要一个更可靠的实现,因此使用第一种方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章