我写了这个,但没有工作
javascript函数可以将self传递给其他函数
我还可以访问调用函数中的变量吗?
function caller()
{
var variable=123;
calledfunction(this);
}
function calledfunction(caller)
{
console.log(caller.variable);
}
caller();
答案 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();