javascript - 使用回调的返回值作为另一个函数的参数

标签 javascript

我引用了多个SO问题,但仍然找不到解决方案。这些是我查看过的问题(主要问题):

  1. Pass a JavaScript function as parameter
  2. How to execute a method passed as parameter to function

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/

相关文章:

Javascript 在我的答案中添加美元符号 $

javascript - 如何在javascript中对数组进行一一处理?

javascript - 将代理与 mobx 存储结合使用

javascript - 虹膜颜色选择器 : get selected colour as RGB value

JavaScript ES6 : How to Iterate Over Object with [Symbol()] names

javascript - 在溢出 :hidden DIV without clipping 内为 DIV 创建覆盖

javascript - 如何截取 Google 表格的屏幕截图

javascript - 如何自引用 NodeJS 模块?

javascript - 在同一函数 jQuery UI 中禁用和刷新

javascript - 在提示框中输入密码类型