我不确定您要实现什么,但这是一个示例,其中MyClass将是一个具有create允许创建MyClass实例的工厂方法的单例。
//MyClass will be an object with a create method only
var MyClass = (function() {
    function MyClass() {
        this.initialized = false;
    }
    MyClass.prototype = {
        init: function () {
            this.initialized = true;
            return this;
        }
    };
    return {
        create: function () {
            return new MyClass().init();   
        }
    };
})();
var m = MyClass.create();
console.log(m);
console.log(m.constructor); //Will be Object because we replaced the whole prototype
但是,我不确定您为什么要拥有两个构造函数(init和它constructor本身)?您是否试图将对象创建过程抽象出来,因为它很复杂?
我怀疑您只是想将constructor逻辑移到另一个函数中,因为您尝试实现继承的方式。
当您执行以下操作时,您是否只是试图避免调用构造函数逻辑?
MyChildClass.prototype = new MyParentClass();
如果是这种情况,使用Object.create将解决您的问题(旧浏览器不支持它,但有一个填充程序 - 填充程序支持您需要的功能,但不是所有Object.create功能)。
function A(test) {
    this.test = test;
}
function B(test) {
    A.call(this, test); //call parent constructor
}
B.prototype = Object.create(A.prototype); //inherit from A
var b = new B('test');
console.log(b);
console.log(b instanceof A); //true
您也可以使用纯原型方法,而无需将constructor函数与new关键字一起使用。
var A = {
        init: function (test) {
            this.test = test;
            return this;
        }
    },
    B = Object.create(A),
    b;
    //override constructor function
    B.init = function (test) {
        return A.init.call(this, test);
    };
b = Object.create(B).init('test');
console.log(b);