Javascript 将包装器对象添加到原型对象
我有一个javascript函数用作构造函数 所有使用的函数都添加到函数的Javascript 将包装器对象添加到原型对象,javascript,Javascript,我有一个javascript函数用作构造函数 所有使用的函数都添加到函数的原型对象中 然而,因为它们太多了,我很好奇是否可以将它们“分组”到一些包装器对象中。如果我这样做,构造函数的this实例就会丢失 function FilesManager() { this._init(); }; FilesManager.prototype._init = function () { }; // wrapper object for folders functions FilesManager
原型
对象中
然而,因为它们太多了,我很好奇是否可以将它们“分组”到一些包装器对象中。如果我这样做,构造函数的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个方法,用于文件夹、文件、属性等,我正在寻找一种对函数进行分组的方法