重构Javascript对象和属性

时间:2014-08-24 14:24:46

标签: javascript refactoring abstract-syntax-tree grasp esprima

我有一些代码,我可能想多次重构。想象一下,就像这样:

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,并且可能从那里获得允许我识别对象范围的结构,但我也找不到这样做的方法。

http://esprima.org/

我想这一定是可能的,但也许我会尝试错误的方式。我知道这也是一项艰巨的任务,所以我当然不是要求有人解决这个问题,但任何指向正确方向的提示都会非常有用。

感谢。

0 个答案:

没有答案