<의문>
3가지 모두 '호출' 이란 의미로 쓰인다.
찾아보고 물어보니 개발자들은 딱히 의미 구분없이 '호출' 개념으로 쓰기에 모호했다. (차이라고 해봐야 직접&간접 차이)
명확하게 정의해보자
<설명>
[Invoke]
Execution을 위해
완전 Bound 된 argument로
함수 예약하는데 필요한
Process
- Argument를 Stack에 Push하고 PC를 new address로 전송하여 Msg, Object, Function, Thunk 등을 나중을 위한 실행 혹은 여러 RPC System을 위해 Queue 에 넣음.
- Method 간접 호출. 다른 곳에 Reference를 유지한 후 간접 호출.
[아래 좋은 예시]
<직접 호출 예시>
fn(); // I'm calling it
<간접 호출 예시>
fn.call(); // I'm calling it
fn.apply(); // I'm calling it
[Call]
함수를 완전 적용 후
호출하는
결합된 Process
- Method 직접 호출
[Trigger]
특정 이벤트 발생시
Method가 실행됨
- Method 조건부 호출
<이해를 위한 예시>
DB에서 Member 테이블에 INSERT 할 때 Table log를 기록하는 Procedure를 실행하고 싶다면?
Member 테이블의 INSERT에 대한 Trigger로 해당 Procedure를 지정
<출처 1> https://stackoverflow.com/questions/18505422/whats-the-difference-between-call-and-invoke
<출처 2> https://okky.kr/articles/260188
<출처 3> https://doqtqu.tistory.com/324
'Programing > Knowledge' 카테고리의 다른 글
[CS] Computation (0) | 2022.11.24 |
---|---|
[CS] Lazy Evaluation (0) | 2022.11.23 |
[CS] Transparancy (0) | 2022.11.19 |
[Knowledge] Procedure 의미 (0) | 2022.11.17 |
댓글