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

我可以将此函数传递给Javascript中的另一个函数吗?,javascript,function,Javascript,Function,这是我写的,但不是工作 javascript函数能否将自身传递给其他函数 我还可以访问调用者函数中的变量吗 function caller() { var variable=123; calledfunction(this); } function calledfunction(caller) { console.log(caller.variable); } caller(); 将赋值中的var变量更改为此变量: function caller() { thi

这是我写的,但不是工作

javascript函数能否将自身传递给其他函数

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

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

将赋值中的
var变量
更改为
此变量

function caller()
{
    this.variable=123;
    calledfunction(this);
}
function calledfunction(caller)
{
    console.log(caller.variable);
}
caller();
在这种情况下,
调用方
并没有真正生成新的实例/范围,因此
这个
实际上是全局的,这是不好的。最好创建一个新的空对象并使用它来保存数据,而不是使用
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();

这里有几个关键问题。看起来您也在尝试实现回调,但实际上只需要一个简单的返回。什么是
filter
,从哪里调用
calledfunction
?刚刚修改了代码您应该澄清,在第一种情况下,您实际上只是在玩全局变量,这通常是不鼓励的(
this==window
)“费利克斯克林,说得好。我添加了第三个示例,它创建了一个空对象来保存数据,而不是使用
this