没有eval的javascript setter注入

时间:2014-10-08 18:40:38

标签: javascript node.js dependency-injection prototype

我试图在下面这个例子中使用setter注入,它可以工作,但我还不知道如何在不使用eval()的情况下实现相同的结果。

var action = function(){};

action.prototype.create = function(type, name) {
   var action = eval("this."+type);
   action.create(name);
};

action.prototype.review = {
    create: function(name){
        console.log("hey "+name);
    }
};

var bang = new action();
bang.create('review','john');

我在nodejs v0.10

上运行它

1 个答案:

答案 0 :(得分:2)

在这种情况下,eval("this."+type)应该等同于this[type]

这是JSBIN example