AngularJS angular.identity 和 angular.noop

jonathan
2017-01-16 / 0 评论

AngularJS angular.identity 和 angular.noop

angular.identity

函数返回本身的第一个参数。这个函数一般用于函数风格。

格式:

angular.identity()

示例代码:

(function () {
  angular.module("Demo", [])
  .controller("testCtrl", testCtrl);
  function testCtrl() {
    var getResult = function (fn, val) {
      return (fn || angular.identity)(val);
    };
    var result = getResult(function (n) { return n * 2; }, 3); //  result = 6
    var null_result = getResult(null, 3);//  null_result = 3
    var undefined_result = getResult(undefined, 3);// undefined_result = 3
  };
}())

angular.noop

一个不执行任何操作的空函数。这个函数一般用于函数风格。

格式:

angular.noop();

示例代码:

(function () {
  angular.module("Demo", [])
  .controller("testCtrl", testCtrl);
  function testCtrl() {
    var _console = function (v) {
      return v * 2;
    };
    var getResult = function (fn, val) {
      return (fn || angular.noop)(val);
    };
    var firstResult = getResult(_console, 3);//6
    var secondResult = getResult(null, 3);//undefined
    var thirdResult = getResult(undefined, 3);// undefined
  };
}())

总结

这两个API的用途有点特殊。总的来说,这两个方法都是用来编写函数时使用的,根据上面示例代码及运行结果可以看出,它们的作用是用来防止函数传入的参数是null或undefined或其他不能操作的对象。

如果不使用这两个函数,当你在函数调用时传入null/undefined/或者其他不能执行的对象,控制台会直接报错。

  • angular.identity:当传入null/undefined时,返回传入的第二个参数值
  • angular.noop:当传入null/undefined时,返回undefined

评论

博主关闭了当前页面的评论