在javascript中丢失变量值

时间:2017-03-21 18:36:00

标签: javascript angularjs variables

我在函数内部有一组函数,变量temp在f1,f2,f3中可用,但不在f4中。它表示未被捕获的referenceerror:temp未定义。当我使用$ scope.temp它工作正常。有人可以帮我解释为什么在f4()中没有temp。感谢。

function(){
var temp = something;
f1(){}
f2(){}
f3(){
// added event listners
  f4();
}
f4(){
// temp is not available 
}

}

2 个答案:

答案 0 :(得分:0)

确保你使用了var temp = something; not this.temp ,通过调用嵌套函数来改变上下文。

答案 1 :(得分:0)

你的例子实际上从未调用f4,所以我不得不做出一些假设,但似乎工作得很好。如果我对你的代码使用方式的假设是错误的,也许你可以提供更多的细节?



function foo(){
  var temp = 'something';
  function f1(){}
  function f2(){}
  function f3(){
    // added event listners
    f4();
  }
  function f4(){
    // temp is not available 
    console.log(temp);
  }
  f3();
}

foo();