2012-01-25 16 views
1
(function(){  
     pm.view.someFunction(arg) { 
      arg is used here. 
     }  

     pm.view.otherFun(){ 
      how can i pass the same arg here too 
     }  
})(); 

他の関数で同じ引数を渡すにはどうすればよいですか。私は閉鎖において、その文脈の上にある変数にアクセスできると聞きました。スコープ内の別の関数で変数にアクセスする方法

+1

本当ですか?これは有効なjavascriptではありません。 –

+1

'someFunction'と' otherFun'はどのように呼ばれますか?あなたはそれらの両方を 'arg'に渡すことはできませんか? –

+0

BTW: 'pm.view.otherFun(){'は無効なJavaScriptです。 –

答えて

2

クローズは、関数が外部スコープの変数を使用できることを意味します。ここでは例です:

function test(){ 
    var str = 'Hello', 
    strFunc = function(){ 
    var s = str + ' world!'; 
    return s; 
    }; 
    return strFunc; 
} 
var t = test(); 
console.log(t()); // Hello world! 

teststrFunc)によって返された関数はクロージャです。ローカル変数strを「閉じる」。 strstrFuncの外で宣言されていますが、同じスコープにあるためアクセスできます。

この例では、同じスコープ内にある2つの関数(そのうちの1つはargパラメータを受け入れます)があります。 argsomeFunctionのスコープにしかありません。otherFunは、パラメータとして渡されない限り、またはの前にstrが宣言されているかのように、関数の外で宣言された場合はアクセスできません。

1

argがグローバル変数として宣言されている場合は、どこに問題があるかわかりません。 そうでない場合は、からpm.view.otherFunに電話をかけてください。

関連する問題