• 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);//6
    var secondResult = getResult(null, 3);//undefined
    var thirdResult = getResult(undefined, 3);// undefined
  • 相关阅读:
    Test SLURM
    PGM_Foundations
    PGM-Introduction
    Functional Analysis-Metric Space
    Introduction to Machine Learning
    Time Series Analysis
    Solving Puzzles With HHT From a Engineering Perspective
    Docker-3:Data Volume
    Docker-2:network containers
    Docker-1
  • 原文地址:https://www.cnblogs.com/pao8041/p/5888929.html
Copyright © 2020-2023  润新知