我在其他答案中读到,为了使用函数作为参数,需要编写 whatever;
而不是 whatever()
因为这个 las 选项“调用”该函数。但是如果我需要指定该函数的参数怎么办?我举个例子:
我有这个功能来替换一些内容:
function navigate(content) {
var card = document.getElementById('informationdiv');
card.innerHTML = content;
}
然后我有另一个创建内容的函数:
function productsheet(article) {
document.write(array_products[article].Name);
document.write(array_products[article].Number);
document.write(array_products[article].Type);
// and so on...
然后,我想像这样调用第一个函数:
navigate(productsheet(article));
并且它不执行innerHTML替换,而是运行productsheet(article)
覆盖其他所有内容。
正如我所说,我发现了类似的问题,解决方案是在没有 (article)
的情况下传递 productsheet
,但在我的情况下,我需要article参数,所以 productsheet
知道要打印什么...
这里建议的方法是什么?
非常感谢!
最佳答案
如果我正确理解了您的问题,您需要将一个匿名函数传递给 navigate
并在其中调用您的 productsheet
函数:
navigate(function () {
productsheet(article);
});
但是,我不太确定您想要实现什么...您可能想摆脱这些 document.write
调用并从 productsheet< 返回一个字符串
,并调用该函数,而不是将其引用分配给 innerHTML
:
card.innerHTML = content();
关于javascript - 我不想运行函数,只是将其用作参数,但它不断弹出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13250434/