我正在尝试在另一个函数中分配一个值,但是它不起作用,这样做的正确方法是什么?
f = function () {
var foo = 6;
function() {
foo = 4;
};
alert(foo);
};
f();
答案 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();
答案 3 :(得分:-2)
您必须初始化内部函数
f = function () {
var foo = 6;
return function() {
foo = 4;
alert(foo);
};
};
f()();