关于callback机制的理解
Posted eddywei
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于callback机制的理解相关的知识,希望对你有一定的参考价值。
funcA(funcB), 这里的funcA可能长这样:
funcA(callback) {
...
callback();
...
}
可以理解为先调用了funcA,再在里面调用了funcB(当然特殊情况就是callback在第一行,但也不影响理解,因为还是先进行了调用funcA这个操作),则称为回调(回过头来调用)。
和直接调用的区别:个人理解是,如果funcA中有时需要调用funcB,有时需要调用funcC,写成callback形式就不用写一个funcA1,再写一个funcA2分别调用了,减少代码冗余。
在封装性上,funcA的调用者不需要管funcB什么时候调用,只知道funcB会被调用,至于什么时候合适调用funcB完全由funcA的代码决定。比如glDisplay(mydisplay),移动窗口,遮挡窗口都会导致重绘,情况复杂多变,但是调用者只须把重绘函数传进去就行,由glDisplay自动调用。
以上是关于关于callback机制的理解的主要内容,如果未能解决你的问题,请参考以下文章