Как передать переменные между функциями в JavaScript - PullRequest
19 голосов
/ 05 января 2011

Вот 2 функции в простейшем виде. Я работаю с JQuery. Как лучше всего передать var str из первой функции во вторую.

function a() {
    var str = "first";
};

function b() {
    var new = str + " second";
};

Ответы [ 2 ]

29 голосов
/ 05 января 2011

Вам нужно либо передать его между ними, либо, как видно из вашего примера, просто объявить его в более широкой области:

var str;
function a(){
  str="first";
}
function b(){
  var something = str +" second"; //new is reserved, use another variable name
}
26 голосов
/ 05 января 2011

Используйте параметры функции, например:

function a() {
   var str = "first";
   b(str);
}

function b(s) {
   var concat = s + " second";
   //do something with concat here...
}

Вы могли бы просто объявить переменную выше в цепочке областей действия, но я предпочитаю использовать аргументы для ограничения доступа к переменнойконтексты, которые абсолютно нуждаются в этом.

О да, разве это не называется принципом наименьших привилегий ?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...