다른 함수 내에서 값을 할당하려고 시도했지만 작동하지 않습니다. 올바른 방법은 무엇입니까?어떻게 값을 할당합니까?
f = function() {
var foo = 6;
function() {
foo = 4;
};
alert(foo);
};
f();
다른 함수 내에서 값을 할당하려고 시도했지만 작동하지 않습니다. 올바른 방법은 무엇입니까?어떻게 값을 할당합니까?
f = function() {
var foo = 6;
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();
당신은 내부 함수
f = function() {
var foo = 6;
return function() {
foo = 4;
alert(foo);
};
};
f()();
이것이 함수를 "초기화하는"방법입니다. – thefourtheye
var f = function() {
var foo = 6;
function x() {
foo = 4;
};
alert(foo);
};
f();
당신은 X를 호출하지 않습니다!
var f1;
f1= function() {
foo = 4;
alert(foo);
};
f = function() {
var foo = 6;
f1();
};
f();
이 코드를 실제로 테스트 해 보셨습니까? –
yea .. 데모를 추가했습니다. – Pranav
프로그램을 실행하려고 했습니까? – thefourtheye
예, 시도했지만 작동하지 않습니다. 실제로 두 번째 함수는 아약스 콜백 함수입니다. – sajadkk
클로저를 보려면 this [http://stackoverflow.com/questions/111102/how-do-javascript-closures-work]를 참조하십시오. 작동 중 – Lin