我引用了多个SO问题,但仍然找不到解决方案。这些是我查看过的问题(主要问题):
compute.js:
const mainTable = document.getElementById('nonFixedSample');
function getRows(metricName) {
let row = 0;
let z = document.getElementsByTagName('tr');
for (let i = 0; i < z.length; i++) {
if (mainTable.rows[i].firstChild.textContent === metricName) {
row = i;
return row;
}
}
}
// Here I am trying to pass that function as callback
function stdCellArea(callback) {
rowNumber = callback();
let runs = mainTable.rows[rowNumber].cells.length;
// Other code
}
现在我将其称为reg_report.php:
<script>
stdCellArea(function() {
getRows('test');
});
</script>
但我收到以下错误:
Uncaught TypeError: Cannot read property 'cells' of undefined at stdCellArea (compute.js:17) at reg_report.php:39
基本上,我需要使用 getRows()
的返回值作为 stdCellArea()
的参数。我知道我可以简单地这样做:
let x = getRows('text');
stdCellArea(x);
但是我必须调用这个函数超过10次,所以我不想创建很多变量。谁能帮忙?
最佳答案
您需要从回调中返回值:return getRows('test');
。如果没有它,rowNumber
就会变成undefined
,因为这就是没有显式return
的函数,return。
关于javascript - 使用回调的返回值作为另一个函数的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52712603/