码迷,mamicode.com
首页 > 其他好文 > 详细

uunderscore源码阅读笔记

时间:2017-09-05 23:02:46      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:步骤   运行   ==   app   context   switch   bsp   other   检验   

var optimizeCb = function(func, context, argCount) {
  if (context === void 0) {
    return func;
  }
  switch (argCount == null ? 3 : argCount) {
    case 1:
      return function(value) {
      return func.call(context, value);
    };
    case 2:
      return function(value, other) {
      return func.call(context, value, other);
    };
    case 3:
      return function(value, index, collection) {
      return func.call(context, value, index, collection);
    };
    case 4:
      return function(accumulator, value, index, collection) {
      func.call(context, accumulator, value, index, collection);
    };
  }
 
  return function() {
    return func.apply(context, arguments);
  };
};

 

 

call 比 apply要快

.apply 在运行前要对作为参数的数组进行一系列检验和深拷贝,.call 则没有这些步骤

uunderscore源码阅读笔记

标签:步骤   运行   ==   app   context   switch   bsp   other   检验   

原文地址:http://www.cnblogs.com/hfdj/p/7482112.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!