繁体   English   中英

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

[英]Can I pass this function to another function in Javascript?

我写了这个,但是没用

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

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

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

将赋值中的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 calledfunction放在caller calledfunction来使用闭包:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM