我有一些代码,我可能想多次重构。想象一下,就像这样:
Namespace.CustomObject = function(name,type){
this.name = name;
this.type = type;
};
Namespace.CustomObject.prototype = {
writeName: function(){
console.log(this.name);
},
changeType: function(type){
this.type = type;
}
};
var object1 = new Namespace.CustomObject('object1','spoon');
object1.name = 'new name';
object1.changeType('new type');
所以,我想要的是有一个系统来生成某种数据结构,我可以知道我拥有哪些命名空间/对象及其方法,所以我可以决定是否要更改" changeType& #34;功能名称为" setNewType",我知道它不仅仅足以替换原型" changeType"属性,也是object1对该函数的调用,因为它是一个CustomObject。
所以,我一直在尝试不同的选择。
起初我试着抓住:
http://graspjs.com/docs/equery/
但我无法找到检测元素范围的方法,我认为这是不可能的。
然后我想到使用esprima来创建我的代码的AST,并且可能从那里获得允许我识别对象范围的结构,但我也找不到这样做的方法。
我想这一定是可能的,但也许我会尝试错误的方式。我知道这也是一项艰巨的任务,所以我当然不是要求有人解决这个问题,但任何指向正确方向的提示都会非常有用。
感谢。