Как установить результат функции как глобальную переменную - PullRequest
0 голосов
/ 25 марта 2010

Я уверен, что это действительно просто, и я рисую гигантский пробел, но как установить результат функции в качестве глобальной переменной?

Пример, я хочу установить первый "цвет" в массиве "colors" как глобальную переменную "color" (я знаю, что пример не имеет большого практического смысла, но он просто иллюстрирует мой вопрос):

var color = "";

function selectColor () {
    var colors = ["blue","red","green","yellow"];
    var color = colors[0];
    return color;
}

window.onload = function () {
    selectColor ();
    alert(color);
}

Ответы [ 3 ]

5 голосов
/ 25 марта 2010

Это должно работать для вас, если вы удалите объявление var из color в функции selectColor(), например:

var color = "";

function selectColor () {
    var colors = ["blue","red","green","yellow"];
    color = colors[0];
    return color;
}

window.onload = function () {
    selectColor ();
    alert(color);
}
2 голосов
/ 25 марта 2010
var color = "";

function selectColor() {
    var colors = ["blue","red","green","yellow"];
    var color = colors[0];
    return color;
}

window.onload = function() {
    color = selectColor();
    alert(color);
}
0 голосов
/ 25 марта 2010

Отвечая на ваш вопрос:

var color = "";

function selectColor () {
    var colors = ["blue","red","green","yellow"];
    color = colors[0];
}

window.onload = function () {
    selectColor ();
    alert(color);
}
  • Ключевое слово var создает локальную переменную внутри selectColor (); ты не хочешь этого.
  • Инструкция возврата не обязательна; Вы не захватываете это.

В любом случае, в этом конкретном примере было бы чище:

var color = "";

function selectColor () {
    var colors = ["blue","red","green","yellow"];
    return colors[0];
}

window.onload = function () {
    color = selectColor ();
    alert(color);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...