React 里面的 setState 到底有几种用法?

最近学习React,发现setState的用法出现了几种,有点蒙,特地总结一下,方便以后查看:
A:接收一个对象。
this.setState({ count : 1 });//花括号是对象
B:一个函数,一般用于在 setState 之前执行一些操作。

this.setState(
    () => {
        console.log(000);
        return { a : 300 };
    }
)

以上都是一个参数的情况,只不过一个是对象,一个是函数。
C:两个参数。第二个是带返回值的回调函数

this.setState(
    { a:300},
    () => {
        //do something
    }
)