web-dev-qa-db-ja.com

javascriptの関数間で変数を渡す方法

最も簡単な形式の2つの関数を次に示します。私はjqueryで作業しています。最初の関数から2番目の関数にvar strを渡す最良の方法は何ですか。

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

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

あなたはそれらの間でそれを渡す必要があります、またはそれはあなたの例から思われる、単により高いスコープで宣言します:

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

次のような関数パラメーターを使用します。

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

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

あなたはcouldスコープチェーンの上位で変数を宣言するだけですが、引数を使用して変数アクセスを絶対に必要なコンテキストのみに制限することを選択します。

そうそう、それは 最小特権の原則 ?と呼ばれていませんか?

27
Jacob Relkin