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);//
var secondResult = getResult(null, 3);//undefined
var thirdResult = getResult(undefined, 3);// undefined

AngularJs angular.identity和angular.noop详解的更多相关文章

  1. AngularJs angular.identity和angular.noop

    angular.identity 函数返回本身的第一个参数.这个函数一般用于函数风格. 格式:angular.identity() 使用代码: (function () { angular.modul ...

  2. Angular - - angular.identity和angular.noop

    angular.identity 函数返回本身的第一个参数.这个函数一般用于函数风格. 格式:angular.identity() 使用代码: (function () { angular.modul ...

  3. Angular Npm Package.Json文件详解

    Angular7 Npm Package.Json文件详解   近期时间比较充裕,正好想了解下Angular Project相关内容.于是将Npm官网上关于Package.json的官方说明文档进行了 ...

  4. angular : ng-animate : ng-show 原理,详解

    这是我第一次写博客,请大家多多指教^^ 拷贝试试 <!DOCTYPE html> <html> <head> <meta http-equiv="C ...

  5. Angular中ui-grid的使用详解

    Angular中ui-grid的使用 在项目开发的过程中,产品经理往往会提出各种需求,以提高用户体验.最近,项目中用到的表格特别多,而且表格的列数和行数也超多.为了让用户浏览更爽,产品经理提出,当表格 ...

  6. angular学习之关于ng-class详解

    1,定义和用法 ng-class 指令用于给 HTML 元素动态绑定一个或多个 CSS 类. ng-class 指令的值可以是字符串,对象,或一个数组. 如果是字符串,多个类名使用空格分隔. 如果是对 ...

  7. angular : ng-animate : css 原理,详解

    通过几中指令就能完成1.2.xx的animate ·ng-repeat ·ng-show,ng-hide ·ng-if,ng-include,ng-view ·ng-switch ·ng-class ...

  8. AngularJS + CoffeeScript 前端开发环境配置详解

    AngularJS 号称 '第一框架' ('The first framework') 确实是名不虚传.由其从jQuery中完全转入AngularJS后就有无法离开他的感觉了.虽然AngularJS的 ...

  9. AngularJS 中的Promise --- $q服务详解

    先说说什么是Promise,什么是$q吧.Promise是一种异步处理模式,有很多的实现方式,比如著名的Kris Kwal's Q还有JQuery的Deffered. 什么是Promise 以前了解过 ...

随机推荐

  1. zookeeper 应用

    一,启动一个zk客户端 zookeeper/bin/zkCli.sh ls /  查看根目录下所有节点 create /znode data  创建节点znode,并添加数据内容为data ls /z ...

  2. JAVA 线程中的异常捕获

    在java多线程程序中,所有线程都不允许抛出未捕获的checked exception(比如sleep时的InterruptedException),也就是说各个线程需要自己把自己的checked e ...

  3. 输入scanner,if-else

    import java.util.Scanner; public class Job{ public static void main(String[] args){ Scanner scanner ...

  4. Linux下解压文件

    unzip + 文件名   (解压.zip文件到当前目录) gunzip –c filename.gz > filename   (解压.gz文件到当前目录,保留原文件) tar -zxvf - ...

  5. 使用caffe时遇到的问题

    1.Error: (unix time) try if you are using GNU date 问题所在: 在训练train.txt图片列表位置和生成的lmbd数据不符. 解决方案: 修改tra ...

  6. Js实现简单的洗牌

    基础篇 洗牌采用的是,每一张牌,与后面随机一张牌来交换位置. 扑克牌采用编码制(如,0代表红桃A,依次类推)为了编码方便,扑克牌不含大小王,故52张. 一.扑克牌的了解 扑克(英文:Poker) 一副 ...

  7. python类中super()和__init__()的区别

    class Base(object):     def __init__(self): print 'Base create' class childB(Base): def __init__(sel ...

  8. eclipse导入外部jar包

    首先在项目下创建一个文件夹,保存我们的jar包. 在项目名上右击,依次点击[New]-->[Floder],打开新建文件夹窗口输入文件夹名称[lib],点击[ok].我们通常在lib文件夹中存放 ...

  9. 为Node.js编写组件的几种方式

    本文主要备忘为Node.js编写组件的三种实现:纯js实现.v8 API实现(同步&异步).借助swig框架实现. 关键字:Node.js.C++.v8.swig.异步.回调. 简介 首先介绍 ...

  10. C# 将容器内容转成图片导出

    ///   将容器内容转成图片导出,这里的controller就是this         /// </summary>         private void OutTheContro ...