断开joint时顺序问题

我想断开一个joint,但不删掉它,
按方式1的顺序,joint在游戏里仍然有效,方式2和方式3都是好用的,求大佬解惑

  //方式1
  joint.connectedBody = null;
  joint.enabled = false;


  //方式2
  joint.enabled = false;
  joint.connectedBody = null;


  //方式3
  joint.enabled = false;

enabled置为false的时候,会执行CCJoint.js里的_destroy,然后会跳到CCPhysicsManager里的_removeJoint,在这里会判断joint.isVaild(),因为方式1先将connectedBody置为null了,导致这里的isVaild返回false,所以不会执行物理引擎的相关关节删除操作,后两种方式isVaild返回的true