Как передать переменные между функциями в javascript

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

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

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

Ответы

Ответ 1

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

var str;
function a(){
  str="first";
}
function b(){
  var something = str +" second"; //new is reserved, use another variable name
}

Ответ 2

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

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

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

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

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