Существует 2 способа добавить переменную в глобальную (и только глобальную область) изнутри функции (без возврата переменных в объекте или массиве).Хотя, добавляя переменную в глобальную область, вы делаете ее доступной для каждого скрипта, выполняющегося на этой странице.
1.Убедитесь, что strict mode
не активирован, и «забудьте» объявить переменные
// Dont do "use strict";
function test() {
private1 = 1;
private2 = 2;
return private1;
}
Если строгий режим не используется, то всякий раз, когда JavaScript видит переменную, которая не была объявлена, он автоматически объявляет ееглобальный охват.Хотя это очень плохая практика, и ее следует избегать.
2.Добавьте переменные непосредственно к глобальному объекту
function test() {
window.private1 = 1;
this.private2 = 2;
return private1;
}
Объект окна можно получить с помощью window
или this
.Но this
вернет window
, только если он не вызывается из object
или связанной / примененной функции.
Возврат и уничтожение (ES6)
Хорошая функцияES6 (то есть это нельзя использовать в старых браузерах, таких как IE) - это деструктурирование, которое позволяет вам сделать это:
function test() {
return { private1: 1, private2: 2 };
}
var { private1: private1, private2: private2 } = test();
или
function test() {
return [1, 2];
}
var { 0: private1, 1: private2 } = test();