javascript - 为什么下划线不验证其功能?

标签 javascript underscore.js

<分区>

特别是在 _.each 的实现中。似乎一个简单的 typeof iterator === 'function' 就可以解决问题。可能只是 or 它与 obj == null 检查。

  // The cornerstone, an `each` implementation, aka `forEach`.
  // Handles objects with the built-in `forEach`, arrays, and raw objects.
  // Delegates to **ECMAScript 5**'s native `forEach` if available.
  var each = _.each = _.forEach = function(obj, iterator, context) {
    if (obj == null) return obj;
    if (nativeForEach && obj.forEach === nativeForEach) {
      obj.forEach(iterator, context);
    } else if (obj.length === +obj.length) {
      for (var i = 0, length = obj.length; i < length; i++) {
        if (iterator.call(context, obj[i], i, obj) === breaker) return;
      }
    } else {
      var keys = _.keys(obj);
      for (var i = 0, length = keys.length; i < length; i++) {
        if (iterator.call(context, obj[keys[i]], keys[i], obj) === breaker) return;
      }
    }
    return obj;
  };

最佳答案

不需要验证。如果函数的输入不正确,那是编程错误造成的,应该按爆破处理。

关于javascript - 为什么下划线不验证其功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24459538/

相关文章:

javascript - 使用js对API调用响应进行排序

javascript - jQuery:如何打印单选按钮的文本标签?

javascript - 把这个字符串变成一个对象

javascript - 如何使用 JavaScript 获取浏览器语言

javascript - 下划线/ Backbone 模板 .get

javascript - 去抖一个带参数的函数

javascript - jquery 是 (":focus")在 safari 中无法工作。此 IF($(this).parents ('form' ).find ('.back' ).is( ":focus") ) 的任何解决方案

javascript - 是否可以在没有 HTTP 请求或 &lt;input&gt; 的情况下从 HTML 应用程序目录中检索文本文件?

javascript - 未找到 Lodash 文件,但它在 index.html 中正确列出并且位于所描述的目录中

javascript - 与其他列表中的字段相对应的订单列表 - Underscore Javascript