javascript - 我可以将此函数传递给 JavaScript 中的另一个函数吗?

标签 javascript function

我写了这个,但没有工作

javascript函数可以将自身传递给其他函数

我也可以访问调用函数中的变量吗?

function caller()
{
    var variable=123;
    calledfunction(this);
}
function calledfunction(caller)
{
    console.log(caller.variable);
}
caller();

最佳答案

将赋值中的var变量更改为this.variable:

function caller()
{
    this.variable=123;
    calledfunction(this);
}
function calledfunction(caller)
{
    console.log(caller.variable);
}
caller();

在这种情况下,caller并没有真正生成新的实例/范围,因此this实际上是全局的,这是不好的。最好创建一个新的空对象并使用它来保存数据,而不是使用 this

function caller()
{
    var data = {};
    data.variable=123;
    calledfunction(data);
}
function calledfunction(values)
{
    console.log(values.variable);
}
caller();

或者,在这种情况下,您可以通过将 calledfunction 放入 caller 中来使用闭包:

function caller()
{
    var variable=123;
    calledfunction();

    function calledfunction()
    {
        console.log(variable);
    }
}
caller();

关于javascript - 我可以将此函数传递给 JavaScript 中的另一个函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25924220/

相关文章:

javascript - 根据id搜索生成单用户报告

javascript - 点击 Ext JS 打开/保存对话框

c# - 有没有办法从字符串运行函数?

用于列表列表的 Python 函数

node.js - 将node.js代码封装在函数中

Swift自动函数反转

python - 如何访问名称为字符串的函数?

javascript - jQuery UI Slider 对数刻度

javascript - 如何在 Javascript 中检测数字键盘输入

javascript - 展平嵌套回调