Angular学習シリーズ--angular.私達は...noop

1366 ワード

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    };
  }())

この2つのapiも少し酔っていますが、総じて言えば、この2つの方法は関数を書くときに使われています.上に書いたdemoのコードや実行結果から見ると、関数がnullやundefined、その他の操作できないオブジェクトに伝わるのを防ぐ役割を果たしているような気がします.この2つを削除すると、関数呼び出し時にnull/undefined/または他の実行できないオブジェクトが入力されるため、コンソールは直接エラーを報告します.