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);//
var secondResult = getResult(null, 3);//undefined
var thirdResult = getResult(undefined, 3);// undefined
AngularJs angular.identity和angular.noop详解的更多相关文章
- AngularJs angular.identity和angular.noop
angular.identity 函数返回本身的第一个参数.这个函数一般用于函数风格. 格式:angular.identity() 使用代码: (function () { angular.modul ...
- Angular - - angular.identity和angular.noop
angular.identity 函数返回本身的第一个参数.这个函数一般用于函数风格. 格式:angular.identity() 使用代码: (function () { angular.modul ...
- Angular Npm Package.Json文件详解
Angular7 Npm Package.Json文件详解 近期时间比较充裕,正好想了解下Angular Project相关内容.于是将Npm官网上关于Package.json的官方说明文档进行了 ...
- angular : ng-animate : ng-show 原理,详解
这是我第一次写博客,请大家多多指教^^ 拷贝试试 <!DOCTYPE html> <html> <head> <meta http-equiv="C ...
- Angular中ui-grid的使用详解
Angular中ui-grid的使用 在项目开发的过程中,产品经理往往会提出各种需求,以提高用户体验.最近,项目中用到的表格特别多,而且表格的列数和行数也超多.为了让用户浏览更爽,产品经理提出,当表格 ...
- angular学习之关于ng-class详解
1,定义和用法 ng-class 指令用于给 HTML 元素动态绑定一个或多个 CSS 类. ng-class 指令的值可以是字符串,对象,或一个数组. 如果是字符串,多个类名使用空格分隔. 如果是对 ...
- angular : ng-animate : css 原理,详解
通过几中指令就能完成1.2.xx的animate ·ng-repeat ·ng-show,ng-hide ·ng-if,ng-include,ng-view ·ng-switch ·ng-class ...
- AngularJS + CoffeeScript 前端开发环境配置详解
AngularJS 号称 '第一框架' ('The first framework') 确实是名不虚传.由其从jQuery中完全转入AngularJS后就有无法离开他的感觉了.虽然AngularJS的 ...
- AngularJS 中的Promise --- $q服务详解
先说说什么是Promise,什么是$q吧.Promise是一种异步处理模式,有很多的实现方式,比如著名的Kris Kwal's Q还有JQuery的Deffered. 什么是Promise 以前了解过 ...
随机推荐
- js实现div层缓慢收缩与展开的方法
引脚本之家 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/T ...
- 后台接收URL地址的参数
其实很简单,只是写一下加强记忆 后台接收URL传递过来的参数有两种方法: 第一种用request接收 HttpServletRequest request = ServletActionContext ...
- medoo–高效的轻量级PHP数据库操作类
网址:http://medoo.lvtao.net/ /*medoo.php*/ class medoo { protected $database_type = ‘mysql’; protected ...
- ios基础操作
//// main.m //文件名// Day2-上课//工程名//// Created by 张开 on 16/1/5.//创建日期及创建人 ////单行注释:可以注释一段代码,起到了解释说 ...
- 关于owinstartupattribute的错误
关于以上的作物究其原因在与引用的Microsoft.owin等一系列的dll文件,出现这个问题只需在内部删除多余的相关包就可以了,在我的项目中需要三个,如下图,其余的都删除 . 这些相关的dll为什么 ...
- ThinkPHP 3.2.3(二)配置
一.配置格式 1.PHP数组定义 默认所有配置文件的定义格式均采用返回PHP数组的方式,配置参数不区分大小写. 如果使用二维数组来配置更多的信息,则二级参数配置区分大小写.格式为: //项目配置文件r ...
- touch的属性
touch命令:建立文件 touch的功能并不是用来创建新文件的,创建文件是touch命令的一个特殊情况,touch是用来修改指定的文件的访问和修改时间属性,如果指定的文件不存在,将建立一个新的空 ...
- 深入Docker
深入Docker 作者:ramanallamilli 随着持续交付等新型开发方法的兴起,工程师再也不会凡事靠运气,希望提交代码上去后,它能在未知环境正常运行.我们可以看到业界这样的转变——开发,质量保 ...
- JQuery的ajaxFileUpload图片上传初试
本案例主要说讲使用ajaxFileUpload实现图片的异步上传. 1.html代码部分 这里的代码,主要设置一下name,后台获取时候要用到,还有设置一个onchange的事件对应的方法:ajaxF ...
- C# 扩展类
C# 中提供一个非常实用的供能,扩展方法(Extension method) 扩展方法是通过额外的静态方法扩展现有的类型.通过扩展方法,可以对已有类型做自己想做的相关扩展.方法:定义静态类,扩展方法也 ...