惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Simon Willison's Weblog
Simon Willison's Weblog
Help Net Security
Help Net Security
P
Privacy International News Feed
T
Threat Research - Cisco Blogs
C
Cisco Blogs
C
CERT Recently Published Vulnerability Notes
NISL@THU
NISL@THU
L
LINUX DO - 热门话题
Security Latest
Security Latest
A
Arctic Wolf
G
GRAHAM CLULEY
月光博客
月光博客
S
Securelist
D
Docker
J
Java Code Geeks
T
Troy Hunt's Blog
T
Tenable Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
SecWiki News
SecWiki News
S
Security @ Cisco Blogs
量子位
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
L
LINUX DO - 最新话题
Recent Commits to openclaw:main
Recent Commits to openclaw:main
aimingoo的专栏
aimingoo的专栏
博客园 - 【当耐特】
H
Heimdal Security Blog
The Hacker News
The Hacker News
博客园 - 三生石上(FineUI控件)
Application and Cybersecurity Blog
Application and Cybersecurity Blog
N
Netflix TechBlog - Medium
Vercel News
Vercel News
Forbes - Security
Forbes - Security
B
Blog RSS Feed
H
Hackread – Cybersecurity News, Data Breaches, AI and More
IT之家
IT之家
B
Blog
MongoDB | Blog
MongoDB | Blog
博客园 - 聂微东
Google DeepMind News
Google DeepMind News
S
Secure Thoughts
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
C
Check Point Blog
云风的 BLOG
云风的 BLOG
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
T
The Blog of Author Tim Ferriss
L
Lohrmann on Cybersecurity
F
Full Disclosure
D
Darknet – Hacking Tools, Hacker News & Cyber Security
P
Proofpoint News Feed

博客园 - 深蓝--广州

css中clearfix清除浮动的用法及其原理示例介绍 opacity与RGBA透明的区别 CSS3 Gradient javascript语言精粹 严格模式认识 Promise与Defer认识 使用javascript打开一个新页而不被浏览器屏蔽 关于浏览器缓存 ie6下js更新元素display:block后,仍然不显示的hack办法 jQuery jsonp无法捕获404、500状态错误 移动端开发问题整理 修改input的type属性 transform:rotate在手机上显示有锯齿的解决方案 javascript钩子机制 jQuery.validate 常用方法及注意问题 SWFObject推出2使用示例 .NET种Json时对单引号和特殊字符串的处理 自定义枚举类型注释属性,并在程序中获取 Python Win32 Extensions
AngularJs angular.identity和angular.noop详解
深蓝--广州 · 2016-09-20 · via 博客园 - 深蓝--广州

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