-
값으로써의 functionJS(javascript) 2020. 11. 25. 15:09
*혼자 내용 정리를 위해 작성하는 글이라 정확하지 않은 정보가 포함되어 있을 수 있습니다.
// 예시1 function print() { console.log("hello world"); } // 예시2 const print = function() { console.log("hello world"); } // 예시3 (function() { console.log("hello world"); })();
함수 부분을 다루다 특이하게 생긴 함수들을 발견했다.
예시2, 3이다.
예시1과 2는 같은 함수를 표현만 다르게 한 것이고
예시3은 일회성 함수, 익명함수라고 한다. 특징은 선언과 동시에 호출하는 것.
javascript는 다른 언어와 다르게 함수를 값처럼 다룰 수 있다고 한다.
const print = function() { console.log("Hello World!"); } // 예시2 obj = { method: function() { console.log("Hello World!"); } } // 예시3 function readyPrint(func) { func(); } print(); obj.method(); readyPrint(print);
값처럼 다뤄지기 때문에 예시1처럼 변수에 저장될 수 있다.
또한 예시2처럼 객체의 property에 대응하는 value로써 작성될 수도 있다.
또한 값이기에 예시3처럼 함수에 인자로 전달될 수도 있다.
위의 내용을 알게 됨으로써
'setInterval(func, time)' : 이 구조에서 왜 func이 func()이 아닌지 알거 같다.
func()은 해당 함수를 즉시 호출하는 것이고 func은 func이라는 곳에 저장된 함수를 전달한다는 뜻이다.
그리고 이와 관련된 coding convention
// Bad const atom = { value: 1, addValue: function(value) { return atom.value + value; } }; // Good const atom = { value: 1, addValue(value) { return atom.value + value; } };
아직 깊게 배우지 않아서 많은 정보를 적진 못하지만
적어도 나중에 이런 식으로 적힌 함수를 봐도 당황은 하지 않겠지.
끝.
참고 사이트:
opentutorials.org/course/743/6508
값으로서의 함수와 콜백 - 생활코딩
값으로서의 함수 JavaScript에서는 함수도 객체다. 다시 말해서 일종의 값이다. 거의 모든 언어가 함수를 가지고 있다. JavaScript의 함수가 다른 언어의 함수와 다른 점은 함수가 값이 될 수 있다는
opentutorials.org
opentutorials.org/course/743/4729
함수 - 생활코딩
함수 함수(function)란 하나의 로직을 재실행 할 수 있도록 하는 것으로 코드의 재사용성을 높여준다. 함수의 형식 함수의 형식은 아래와 같다. function 함수명( [인자...[,인자]] ){ 코드 return 반환값 }
opentutorials.org
'JS(javascript)' 카테고리의 다른 글
콜백 함수란? (0) 2020.12.18 addEventListener, event, parentNode, classList (0) 2020.11.25 localStorage, JSON, stringfy, parse (0) 2020.11.24 setInterval (0) 2020.11.24 var, let (0) 2020.11.24