Javascript 如何在回调函数中添加一个额外的参数并从另一个文件调用它

Javascript 如何在回调函数中添加一个额外的参数并从另一个文件调用它,javascript,html,function,parameters,callback,Javascript,Html,Function,Parameters,Callback,我有三份档案 首先,manager.js——我在这里定义了函数prevImage(a、b、c、d、callback) 其次,connect.js-这将调用prevImage(回调) 第三,container.js——在这里,我调用prevImage的回调来获取图像 我的函数工作正常,我可以从container.js调用connect.js来获取图像。现在我要在connect.js中添加另一个参数 代码如下所示: manager.js: mapmanager.GetPreviewImage = f

我有三份档案

首先,manager.js——我在这里定义了函数prevImage(a、b、c、d、callback)

其次,connect.js-这将调用prevImage(回调)

第三,container.js——在这里,我调用prevImage的回调来获取图像

我的函数工作正常,我可以从container.js调用connect.js来获取图像。现在我要在connect.js中添加另一个参数

代码如下所示:

manager.js:

mapmanager.GetPreviewImage = function(lo, la, lod, mplayerS, sc, callback) {
....
}
connect.js:

connect.prevImage = function(callback) {
        var layer = map.type;
        if(..) {
        } else {
        }
}
container.js-这有一个popover,其中包含项目。我的物品有新闻发布会。当用户按下某个项目时,该项目将有一个名称。我想将此名称传递给connect.preview。。。用作图层变量的值

press: function(event) {
    stacks.forEach(function(entry) {
        if (entry.name === text) {

        //this value needs to be passed to connect.js 
        //as the value for layer variable
        var mply = entry.name; 
        control.sc.connect.prevImage( function (img) {
                slctMap.setSrc(img.src);
        });
}
在上面,我需要添加一个新参数:

control.sc.connect.prevImage( function (mplayerS, img) {
    slctMap.setSrc(img.src);
});

connect.js中名为“mplayerS”的新参数应从container.js变量“layer”中获取其值


如何将新参数添加到connect.js?

JavaScript的一个奇妙之处是,无论程序员做了多少次,它都会继续插入,这也是它的一个警告。JavaScript不需要在传递参数时声明变量来处理数据。这是阵列可以发挥作用的地方。您可以通过arguments数组向JS函数传递任意数量的参数,并获取任意数量的参数,只需注意空值

编辑: 下面的代码片段演示了回调和参数数组的使用。我知道这不是你的代码,我这样做有两个原因;第一个原因是我无法实现您的环境,第二个原因是我不想只是给您答案,而是希望您考虑一下,然后询问回调和参数的情况

var getPreviewImage=函数(lo、la、lod、mplayerS、sc、回调){
log(“在getPreviewImage中”);
log(参数);
控制台日志(lo);
}
var prevImage=函数(mplayerS,回调){
回调(mplayerS);
}
var myCallback=函数(){
log(“在myCallback中”);
log(参数);
}
函数运行(){
prevImage(“这是我的播放器”,myCallback);
prevImage(“这是我的另一个播放器”,getPreviewImage);
};

run()你能帮我使用上面的代码吗:)比你。
connect.prevImage = function(mplayerS,Callback) {
            var layer = map.type;  //this here will be the value from container
            if(..) {
            } else {
            }
    }