Javascript 如何赋值?
我试图在另一个函数中赋值,但它不起作用,正确的方法是什么Javascript 如何赋值?,javascript,function,variables,Javascript,Function,Variables,我试图在另一个函数中赋值,但它不起作用,正确的方法是什么 f = function () { var foo = 6; function() { foo = 4; }; alert(foo); }; f(); 必须初始化内部函数 f = function () { var foo = 6; return function() { foo = 4; alert(foo); }; }; f()(); 你没有调用这个函数。您需要这样做: f
f = function () {
var foo = 6;
function() {
foo = 4;
};
alert(foo);
};
f();
必须初始化内部函数
f = function () {
var foo = 6;
return function() {
foo = 4;
alert(foo);
};
};
f()();
你没有调用这个函数。您需要这样做:
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();
您从不调用x,因此值保持不变
var f1;
f1= function() {
foo = 4;
alert(foo);
};
f = function () {
var foo = 6;
f1();
};
f();
Link:你试过执行这个程序吗?是的,我试过了,但不起作用,实际上第二个函数是ajax回调函数看到了吗[要查看Action中的闭包谢谢,这是可行的,但是如果内部函数是ajax回调怎么办?foo的值会从6变为4吗?@sajadkk在调用回调时会变。我需要返回新值,可能吗?@sajadkk不,这是异步编程工作的一个重要部分。回调会在它们所在的函数之后运行,不是吗你确定这就是你“初始化”函数的方式吗?是的。我已经添加了演示
var f1;
f1= function() {
foo = 4;
alert(foo);
};
f = function () {
var foo = 6;
f1();
};
f();