Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无eval的javascript setter注入_Javascript_Node.js_Dependency Injection_Prototype - Fatal编程技术网

无eval的javascript setter注入

无eval的javascript setter注入,javascript,node.js,dependency-injection,prototype,Javascript,Node.js,Dependency Injection,Prototype,在下面的示例中,我尝试使用setter注入,它可以工作,但我还无法找到如何在不使用eval()的情况下实现相同的结果 我在nodejs v0.10上运行它,在这种情况下,eval(“this.+type)应该与this[type]等效 这是一个。对于这个常见问题,可能有数百个dup问题/答案。IE8也不会对保留关键字(如for、while、class等)感到奇怪,因此更安全。可能会重复 var action = function(){}; action.prototype.create = f

在下面的示例中,我尝试使用setter注入,它可以工作,但我还无法找到如何在不使用eval()的情况下实现相同的结果


我在nodejs v0.10上运行它,在这种情况下,
eval(“this.+type)
应该与
this[type]
等效


这是一个。

对于这个常见问题,可能有数百个dup问题/答案。IE8也不会对保留关键字(如for、while、class等)感到奇怪,因此更安全。可能会重复
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');