[bugfix]  init is called twice

1. [bugfix] init is called twice when an object is instantiated from a grandchild class of CoreObject.
2. [refactor] I do not know if the refactor is appropriate, please tell me what you think.
why not leave this as `this.init` and `this,init.apply` ?