gpt4 book ai didi

javascript - 如何将传递到 function() 的动态参数中继到 function() 中调用的 function()

转载 作者:行者123 更新时间:2023-11-29 22:29:51 26 4
gpt4 key购买 nike

我正在尝试将网页中的动态参数中继到函数中,然后函数将它们传递给函数内部的调用。比如下面这个简化的代码片段,现在这样,直接传入参数是没有问题的。但是,如何在不为每个可能的 colorbox 参数设置 showColorbox() 参数的情况下传入 colorbox 接受的参数?

function showColorbox(title, url, width, height, modal, params) {

$.colorbox({title:title, href:url, width:width, height:height, opacity:0.7});

}

例如,colorbox 接受传入一个事件函数,如果我直接调用 colorbox,如下所示:

    $.colorbox({title:title, href:url, width:width, height:height, opacity:0.7, 
onComplete: function() {
$.colorbox.resize();
}
});

所以,如果不添加一些代码或制作另一个参数并在 showColorbox() 中以某种方式解析它,有没有办法让我传递 onComplete 参数/代码 [via showColorbox(....{onComplete:yada yada} ) 或其他东西] 并将它们传递给 $.colorbox() 函数?

更新:最终成功使用以下内容,向 showColorbox() 函数添加了一个额外的 objParams 参数。

//m_title, m_url, m_width, m_height are from fixed parameters for showColorbox()        
var objBase = {title:m_title,href:m_url,width:m_width,height:m_height} ;
var objFinal = {};

//add base parameters passed in directly, fixed params
for(var item in objBase) {
objFinal[item] = objBase[item];
}
//add the parameters from objParams passed in (variable params/values)
for(var item in objParams) {
objFinal[item] = objParams[item]
}

//call function with combined parameters in object
$.colorbox(objFinal)

调用者都不需要更新,但现在使用 $.colorbox 理解的参数传递一个新对象工作正常!再次感谢!

最佳答案

听起来您正在寻找的解决方案是希望有一种简单的方法来将变量参数的各个参数作为对象文字中的命名属性值传递。如果是这样,则没有办法实现这一目标。主要是因为在这种情况下,参数没有名称,因此它们没有任何内容可以映射到。

完全解决此问题的最佳方法是在每个阶段都需要一个对象并完全省略额外的参数。

function showColorbox(obj) {
...
$.colorbox(obj);
}

showColorbox({title:title, href:url, width:width, height:height, opacity:0.7});

关于javascript - 如何将传递到 function() 的动态参数中继到 function() 中调用的 function(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7560315/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com