AngularJS中angular.identity和angular.noop

两个函数都用于Coding风格

angular.identity

函数会返回自身的第一个参数,相当于你给它传什么它就会返回什么


// 直接这样写,如果参数`fn`不为`function`会导致出错
function foo(fn, value) {
  return fn(value);
};

//使用`angular.identity` 
// 当fn可以为`0`、`null`、`undefined`、`false`、`Nan`等不为function的值,返回值为value
function foo(fn, value) {
  return (fn || angular.identity)(value);
};

//相当于
function foo(fn, value) {
  if(fn){
    return fn(value);
  }else{
   return value;
  }
};

angular.noop

是一个没有任何操作的空函数


//同上例子
//不同在于当取不为funtion的`0`、`null`等特殊值时,返回的为undefine
function foo(fn, value) {
  return (fn || angular.noop)(value);
};

猜你喜欢

转载自www.cnblogs.com/chenjy1225/p/9780467.html