如何声明一个回调函数
注意在传入回调函数的时候使用的是 someCall 函数名,而不是 someCall() ,在JS中 () 代表作为函数执行的意思,并不是该函数的指针
1 | function test() { |
输出
1 | Enter |
如果使用了刚刚提到的后者会提示错误 TypeError: callback is not a function. (In ‘callback()’, ‘callback’ is undefined)
并且从输出日志可以看到 someCall() 首先作为函数被执行了一次,才进入doWithCallBack
1 | CallBack |
JS使用范型带来的隐患
因为回调函数传入的是一个函数名,如果传入一个var或者null,岂不是会报错,影响后续执行?所以说可以进行一次typeof检查来保证代码不错出
1 | (callback && typeof(callback) === "function") && callback(); |