Javascript 将包装器对象添加到原型对象

Javascript 将包装器对象添加到原型对象,javascript,Javascript,我有一个javascript函数用作构造函数 所有使用的函数都添加到函数的原型对象中 然而,因为它们太多了,我很好奇是否可以将它们“分组”到一些包装器对象中。如果我这样做,构造函数的this实例就会丢失 function FilesManager() { this._init(); }; FilesManager.prototype._init = function () { }; // wrapper object for folders functions FilesManager

我有一个javascript函数用作构造函数

所有使用的函数都添加到函数的
原型
对象中

然而,因为它们太多了,我很好奇是否可以将它们“分组”到一些包装器对象中。如果我这样做,构造函数的
this
实例就会丢失

function FilesManager() {
    this._init();
};
FilesManager.prototype._init = function () { };

// wrapper object for folders functions
FilesManager.prototype.folders = {};
FilesManager.prototype.folders._dropFiles = function () {
    var self = this;
    // self is an instance of folders {} object, and not an instance of FilesManager
};

您可以重复使用文件夹原型,但必须创建文件夹实例,才能引用使用它的FileManager实例。代码可以如下所示:

function Folders(fileManager){
  this.fm=fileManager;
}
Folders.prototype._dropFiles=function(){
  //test to see if we get the correct name
  console.log("logging name:",this.fm.name);
}
function FilesManager(args) {
  if(typeof args==="undefined"){
    args={};
  }
  this.name=args.name?args.name:"default name";
  this.folders=new Folders(this);
};

var fm1=new FilesManager({name:"fm1"});
var defaultNamedfm = new FilesManager();
fm1.folders._dropFiles();
defaultNamedfm.folders._dropFiles();

通过前缀或在源代码中分隔它们来对它们进行分组,但不能通过嵌套属性进行分组。函数类大约有50个方法,用于文件夹、文件、属性等,我正在寻找一种对函数进行分组的方法