noop 함수는 아무것도 안하는 함수인데 유용하게 쓰일 때가 있다.
일단 예제를 하나 보자.
function foo(callback) {var result = calculateResult();(callback || angular.noop)(result);}
이 예제에서 callback이 함수라면 result를 전달인자로 넣어서 callback 함수를 실행하고,
callback 가 함수가 아니라면(undefined라던가...) angular.noop 함수를 실행하게 된다.
즉, 위의 코드는 아래의 코드와 비슷한 동작을 한다. 정확히 똑같진 않지만, 그게 그거다.
function foo(callback) {var result = calculateResult();if (typeof callback == 'undefined') {callback(result);} else {angular.noop(result);}}
물론 이렇게 작성하면 angular.noop은 필요없다.
그래도 위쪽 코드처럼 작성하면 코드양도 줄고 뭔가 있어보이지 않은가.
또한, 아래와 같이 하면 비슷한 패턴, 특히, callback의 유효성 여부를 검사안하는 기존 코드가 있는 경우에 유용하게 써먹을 수 있다.
function foo(callback) {// 복잡한 로직들...callback();}foo(angular.noop);
그래도 그냥 foo(function() {}) 쓰면 되지 이게 뭐냐... 할 수도 있는데..
그럼 쓰지마시길.. 안 써도 큰일 안난다.