AngularJs angular.identity和angular.noop详解

angular.identity

函数返回本身的第一个参数。这个函数一般用于函数风格。

----------以上是官网对该接口的说明,只能说这个文档写得也太二,让人完全看不懂。要理解它的用途,可直接看以下代码:

function getResult(fn, input) {
    //其实我们可以直接这样写:
    //return fn(input); 但这样写有个问题,如果传入的fn参数不是一个function类型,会导致出错。
    //官方推荐的写法如下:
  return (fn || angular.identity)(input);//这里如果fn参数为空值,使用angular.identity,那么当传入的第一个参数不是function类型时,相当于第一个参数是function(input){return input}
};
//等同于如下写法
function getResult(fn, input) {
  if(angular.isFunction(fn)){
      return input;
  }
  return fn(input);
};
getResult(function(n) { return n * 2; }, 21);   // returns 42
getResult(null, 21);                            // returns 21
getResult(undefined, 21);                       // returns 21

 

 

 

angular.noop

一个不执行任何操作的空函数。这个函数一般用于函数风格。

------------------

官网的api说明,依然是简洁风,不管你看不看得懂。不过这里如果你了解了jquery.noop()函数,这里就容易理解了,因为他们两个的用法是一样样的

var getResult = function (fn, val) {
    //这里如果直接写为
    //return fn(val); 
    //也不会出错,但如果传入的第一个参数为空,则会出错。
  return (fn || angular.noop)(val);//这样写,如果传入的值不是函数,也不会出错
};
var firstResult = getResult(function(input){console.log(input);}, 3);//6
var secondResult = getResult(null, 3);//undefined
var thirdResult = getResult(undefined, 3);// undefined

 

转载于:https://www.cnblogs.com/pao8041/p/5888929.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值