javascript - underscore 源码中 _.invoke 的疑问
ringa_lee
ringa_lee 2017-04-10 15:55:44
0
1
459
_.invoke = restArgs(function(obj, method, args) {
    var isFunc = _.isFunction(method);
    return _.map(obj, function(value) {
      var func = isFunc ? method : value[method];
      return func == null ? func : func.apply(value, args);
    });
  });

上面

 return func == null ? func : func.apply(value, args);
 
 /* 这里判断了 func == null 返回 func,那对 method 是否是函数的判断有什么意义?
  * 比如 _.invoke([{a:1},{a:2}], 'a') 期望的结果应该是 [1,2],
  * 而现在明显会执行 func.apply(value, args),然后就出错了
  * 所以我觉得这里应该判断的是 func 是否是函数,不是的话,直接返回 func 
  */
ringa_lee
ringa_lee

ringa_lee

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!