将数组转换为函数参数

时间:2015-09-28 13:03:37

标签: javascript jquery backbone.js requirejs

如果您查看下面的代码,您可以看到我有一系列有组织的模型,集合和视图。我有一个名为includes的函数,它将该对象的所有值连接成一个单独的数组。

这只是我一个整洁的怪物......但是有些方法需要在第二个需要参数上生成参数列表。

这是我的代码。

var files = {
   models : [
      'Models/BlogPost',
      'Models/Tweet'
   ],
   collections : [
      'Collections/BlogPosts',
      'Collections/Tweets'
   ],
   views : [
      'Views/BlogPostIndexView',
      'Views/TwitterView'
   ],
};

var includes = function() {
   return files.models.concat(files.collections,files.views);
}

require(includes, function(BlogPost, BlogPosts, BlogPostIndexView,    Tweet, Tweets, TwitterView){ ... }

理想情况下,我希望我的require方法看起来如下......

require(includes, function(function(){return getParams()}));

2 个答案:

答案 0 :(得分:0)

BlogPost, BlogPosts, BlogPostIndexView, Tweet, Tweets, TwitterViewnames个参数。 AFAIK你不能真正把它们放在变量或函数中并返回它们。

您可以做的是,您可以使用arguments在您的功能中访问它们。

所以你的代码看起来像

require(includes, function(){
    var BlogPost = arguments[0],
        BlogPosts = arguments[1];
       ...
});

这可能会解决你对整洁的喜爱,但我不知道这是不是你想要的。

答案 1 :(得分:-1)

为什么不这样:

var params = {
    BlogPost: BlogPost,
    BlogPosts: BlogPosts,
    BlogPostIndexView: BlogPostIndexView,
    Tweet: Tweet,
    Tweets: Tweets,
    TwitterView: TwitterView
}

require(includes, function(params){ ... }

修改

var params = [BlogPost, BlogPosts, BlogPostIndexView, Tweet, Tweets, TwitterView];

require(includes, function(params){ ... }