如何在jquery中使用eval从另一个文件中调用另一个函数

时间:2015-03-13 13:58:18

标签: javascript jquery eval getscript

所以基本上我有一个app.js文件,它有一个传递参数的函数

我有更多js文件,如posts.js,comment.js 然后我可以做app.init('posts');

然后我找到了文件,使用getscript获取它,但现在我需要调用该文件。

这是我的代码

init:function(file){
        getfile = file;
        if($.inArray(getfile+'.js', modular_array)!==-1){
              $.getScript("js/modulars/"+getfile+'.js', function(data){
                  console.log(eval(getfile)["init"]); // this does not! why
                  //console.log(posts.init()); // this works
              });
        } else {
            console.log('not it');
        }
    }

1 个答案:

答案 0 :(得分:0)

getScript自动加载并运行脚本文件 - 您无需手动执行它:

init:function(file){
        getfile = file;
        if($.inArray(getfile+'.js', modular_array)!==-1){
              $.getScript("js/modulars/"+getfile+'.js');
        } else {
            console.log('not it');
        }
    }

如果你想调用脚本定义的一些初始化函数,你可以直接调用它,如你所发现的那样:posts.init()

代码eval(getfile)不起作用,因为getfile是文件名。 eval需要包含Javascript代码的字符串。