Я использую JavaScript и создаю глобальную переменную. Я определяю его вне функции, и я хочу изменить значение глобальной переменной изнутри функции и использовать ее из другой функции, как это сделать?Как изменить значение глобальной переменной внутри функции
ответ
Просто ссылаться на переменную внутри функции; нет волшебства, просто используйте его имя. Если он был создан глобально, то вы будете обновлять глобальную переменную.
Вы можете переопределить это поведение, объявив его локально, используя var
, но если вы не используете var
, тогда имя переменной, используемое в функции, будет глобальным, если эта переменная объявлена глобально.
Именно поэтому считается, что лучше всего всегда объявлять ваши переменные с помощью var
. Потому что, если вы забудете это, вы можете начать беспорядок с помощью глобальных переменных случайно. Это непростая ошибка. Но в вашем случае этот поворот вокруг и станет легким ответом на ваш вопрос.
var a = 10;
myFunction();
function myFunction(){
a = 20;
}
alert("Value of 'a' outside the function " + a); //outputs 20
спасибо за этот удивительный простой пример. Логика этого делала моя голова. Просто нужно привыкнуть к размышлению. – Mikey3Strings
Просто используйте имя этой переменной.
В JavaScript переменные являются только локальными для функции, если они являются параметрами (-ами) функции, или если вы объявляете их локально явно, введя ключевое слово var
перед именем переменной.
Если имя локального значения имеет такое же имя, как и глобальное значение, используйте window
объект
Смотреть это jsfiddle
x = 1;
y = 2;
function a(y) {
// y is local to the function, because it is a function parameter
alert(y); // 10
y = 3; // will only overwrite local y, not 'global' y
var x; // makes x a local variable
x = 4; // only overwrites local x
alert(y); // 3
alert(x); // 4
// global value could be accessed by referencing through window object
alert(window.y) // 2 global y
}
a(10);
alert(x); // 1; this is the global value
alert(y); // 2; global as well
+1 для описания столкновения имен между глобальной и локально объявленной переменной и доступа к нему. – gdbj
<script>
var x = 2; //X is global and value is 2.
function myFunction()
{
x = 7; //x is local variable and value is 7.
}
myFunction();
alert(x); //x is gobal variable and the value is 7
</script>
Просто не используйте ключевое слово 'var' внутри функции, тогда вам не нужно иметь дело с' document.getElementById («outside»). Value = x; ' –
- 1. Как изменить значение глобальной переменной из функции?
- 2. Как изменить значение пользователем (inputing поле) глобальной переменной внутри функции
- 3. Как изменить значение любой глобальной переменной внутри функции?
- 4. Получите значение глобальной переменной внутри функции
- 5. Назначить значение глобальной переменной внутри функции
- 6. Как изменить значение глобальной переменной
- 7. Изменение глобальной переменной внутри функции?
- 8. Невозможно изменить значение глобальной переменной
- 9. Как изменить значение глобальной переменной внутри обещание Angularjs
- 10. Изменение глобальной переменной внутри функции
- 11. Изменить значение глобальной переменной, C
- 12. Попытка изменить значение глобальной переменной
- 13. Как изменить значение переменной внутри функции Void?
- 14. Pass значение функции глобальной переменной
- 15. Использование глобальной переменной внутри функции python
- 16. Как сохранить значение из функции внутри socket.on для глобальной переменной?
- 17. Изменение глобальной переменной внутри функции PHP
- 18. Значение изменения глобальной переменной
- 19. Python: чтение глобальной переменной внутри создателя функции
- 20. Изменить Python глобальной переменной внутри Eval
- 21. Изменение значения глобальной переменной внутри функции
- 22. Javascript - изменение глобальной переменной внутри функции
- 23. Bash: объявление глобальной переменной внутри функции
- 24. Невозможно изменить значение переменной внутри функции (jQuery)
- 25. GAS: Как изменить значение глобальной переменной и сохранить измененное значение при использовании переменной в функции обработчика?
- 26. Определение глобальной переменной внутри функции в ракетке
- 27. Обновление глобальной переменной из функции внутри модуля
- 28. увеличение значения глобальной переменной внутри функции .each()
- 29. jQuery/Javascript: определение глобальной переменной внутри функции?
- 30. Задание глобальной переменной вне функции
Это не работает для меня: страны = 'Foo' $ .ajax ({ URL: '/ некоторые конечных точки', успеха: функция (данные) { страны = data.country; } }); console.log (страна) // выводит «foo» –
@MarkSimpson - причина, по которой он не работает, заключается в том, что в вашем примере «console.log» запускается немедленно, но функция успеха ajax работает только в некоторой точке позже, когда вызов ajax фактически возвращает ответ. Это фундаментальный момент об асинхронном характере ajax: код в функциях закрытия не работает последовательно с кодом вокруг него. Это важно понять при изучении кода, управляемого событиями. – Spudley
Спасибо за объяснение, @Spudley –