我可以将此函数传递给Javascript中的另一个函数吗?
这是我写的,但不是工作 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
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
。