콜백 함수의 정의는 실행을 위해 함수 b를 a에 매개 변수로 전달하는 것입니다. 이때 b가 콜백 함수입니다. 갑자기 함수 a에서 b를 직접 호출하는 것과 차이점이 무엇인가요?
내가 직접 데모를 작성했습니다
출력 결과를 보는 데 3초 정도 걸리고 콜백 함수 형태로 다시 작성합니다
으아아아출력 결과는 3초 후에만 볼 수 있습니다
이 논리에 따르면 b가 함수 a의 콜백 함수로 실행될 때 함수 a의 정상적인 실행을 방해하지 않는다는 내용의 기사를 많이 찾았습니다. , 두 번째 방법은 즉시 hello world를 출력할 때 잘못된 콜백 함수를 사용했기 때문입니까? 아직도 이해하는 데 어려움이 있으신가요?
1. 성능에는 차이가 없습니다.
2. 콜백 함수가 매개변수로 전달되며 작업이 더 유연해집니다. 예를 들어 b(c)를 실행할 수 있는 함수를 정의할 수 있습니다. 함수 내에서 함수를 실행하면 변수 유연성이 손실됩니다.
글쎄, 착각하셨군요. 전화를 걸어도 효과는 똑같습니다. 그리고
callback.call(this);
画蛇添足,跟callback()
이것도 마찬가지예요.콜백의 장점은 종속성 반전입니다. a의 코드를 수정하지 않고도 c, d, e를 호출할 수 있습니다.