两个函数都用于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);
};