使用javascript eval函数传递参数的问题...我做错了什么?

时间:2010-08-22 10:13:14

标签: javascript eval

像往常一样,我经过几个小时的测试来到这里并且没有任何线索我做错了什么;-)我不是一个javascript专家所以我想这会引起一些滚动的眼睛;-)对不起。我现在正处于尝试以更易读的方式编写代码的地方。在类等中分离函数...我想要实现的是这样的:


modules.create( 'streamModule', 'leftColumn')
这将称为 的 streamModule.create()


现在我不能去工作:
调用 modules.create('streamModule','leftColumn')总会导致
参考错误:未定义leftColumn ??? 通话中的ID: eval(type +“。create(”+ id +“,”+ target“)”);总是正确传递但目标参数不是???我做错了什么?

任何帮助都会非常感激!!!!!谢谢!

var modules = {
    _map    : [],

    create: function(type,target) {

    if(type == undefined) return false;
    if(target == undefined) return false;

    //Store id in map
    this._map.push(id = createID());

    //Call create function of module
    eval(type +".create("+id+","+target")");
    }
}

[...]

var streamModule = {

create: function() {
    $.log(target)
   }
}

[...]

modules.create('streamModule','leftColumn') 

1 个答案:

答案 0 :(得分:2)

为什么你需要eval

var modules = {
    _map    : [],

    create: function(type,target) {

    if(type == undefined) return false;
    if(target == undefined) return false;

    //Store id in map
    this._map.push(id = createID());

    //Call create function of module
    type.create(id, target);
}

[...]

var streamModule = {

   create: function(id, target) {
    $.log(target)
   }
}

[...]

modules.create(streamModule, leftColumn);