As you said, $J$ acts on a form by acting on the inputs. If $\alpha$ is a $(p, q)$-form, then it takes $p + q$ vector fields as inputs, and by linearity we can reduce to considering the case where each vector field is either a vector field of type $(1,0)$ or $(0,1)$. In this restricted case, $\alpha$ can only evaluate to something non-zero when there are $p$ vector fields of type $(1,0)$ and $q$ of type $(0, 1)$. If $X$ is a vector field of type $(1, 0)$, then $JX = iX$, while if $Y$ is a vector field of type $(0, 1)$, we have $JY = -iY$. Therefore, if $X_1, \dots, X_p$ are vector fields of type $(1, 0)$ and $Y_1, \dots, Y_q$ are vector fields of type $(0, 1)$, then
\begin{align*}
(J\alpha)(X_1, \dots, X_p, Y_1, \dots, Y_q) &= \alpha(JX_1, \dots, JX_p, JY_1, \dots, JY_q)\\
&= \alpha(iX_1, \dots, iX_p, -iY_1, \dots, -iY_q)\\
&= i^p(-i)^q\alpha(X_1, \dots, X_p, Y_1, \dots, Y_q)\\
&= i^{p-q}\alpha(X_1, \dots, X_p, Y_1, \dots, Y_q).
\end{align*}
Therefore $J\alpha = i^{p-q}\alpha$ so
\begin{align*}
-JdJ\alpha &= -Jd(i^{p-q}\alpha)\\
&= -i^{p-q}Jd\alpha\\
&= -i^{p-q}J(\partial\alpha + \bar{\partial}\alpha)\\
&= -i^{p-q}(J\partial\alpha + J\bar{\partial}\alpha)\\
&= -i^{p-q}(i^{(p+1)-q}\partial\alpha + i^{p-(q+1)}\bar{\partial}\alpha)\\
&= -i\partial\alpha + i\bar{\partial}\alpha\\
&= -i(\partial - \bar{\partial})\alpha.
\end{align*}
That is $d^c = -JdJ = -i(\partial - \bar{\partial})$.