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

时间:2014-09-18 23:48:48

标签: javascript function

我写了这个,但没有工作

javascript函数可以将self传递给其他函数

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

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

1 个答案:

答案 0 :(得分:0)

将作业中的var variable更改为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();