我如何分配价值?

时间:2014-05-19 11:43:36

标签: javascript function variables

我正在尝试在另一个函数中分配一个值,但是它不起作用,这样做的正确方法是什么?

f = function () {
  var foo = 6;
  function() {
     foo = 4;
  };
  alert(foo);
};
f();

4 个答案:

答案 0 :(得分:2)

您没有调用此功能。你需要做这样的事情:

f = function () {
  var foo = 6;
  var func = function() {
     foo = 4;
  };
  func();
  alert(foo);
};
f();

您在评论中指出您的功能实际上是一个回调,这是一个完全不同的问题。如果你这样做:

f = function () {
  var foo = 6;
  somethingAsync(function() {
     foo = 4;
  });
  alert(foo);
};
f();

该函数将运行,但它将首先运行警报,但您不会看到更新的值。相反,您应该将警报放在函数本身中:

f = function () {
  var foo = 6;
  somethingAsync(function() {
     foo = 4;
     alert(foo);
  });
};
f();

答案 1 :(得分:0)

var f = function () {
  var foo = 6;
  function x() {
     foo = 4;
  };
  alert(foo);
};
f();

你永远不会打电话给x,所以价值保持不变!

答案 2 :(得分:-1)

var f1;
f1= function() {
     foo = 4;
     alert(foo);
  };
f = function () {
  var foo = 6;
  f1();

};

f();

链接:http://plnkr.co/edit/wKDoimqEx1IuTzGPEu8c?p=preview

答案 3 :(得分:-2)

您必须初始化内部函数

f = function () {
  var foo = 6;
  return function() {
     foo = 4;
     alert(foo);
  };
};
f()();