これが重複している場合は、これが何の重複か教えてください。複数の関数で再利用される js クロージャーを作成するにはどうすればよいですか? 私はそれを理解できないようです。何かが欠けている可能性がありますが、内部関数を再実装し続ける (クロージャーを作成する) か、関数を外部に配置する必要があります (しかし、それはもはやクロージャーではありません)。両方を同時に行うにはどうすればよいですか?
例: したがって、js クロージャーは次のように作成されます。
function a()
{
var x = "99";
var b = function()
{
//x=99
}
}
function z()
{
var x = "99";
var b = function()
{
//x=99
}
}
ただし、これは閉鎖ではありません。
function bTemplate()
{
//when coming from call of b() in m, x will not be the x from function m!
}
function m()
{
var x = "99";
var b = bTemplate;
b(); //x is not the x from function m
}
function n()
{
var x = "98";
var b = bTemplate;
b(); //x is not the x from function m
}
私の質問は次のとおりです: * (繰り返しを避けるために) 外部から関数を定義する方法と、同時にクロージャーを作成して、引数を渡す必要がないようにする方法は? たぶんそれは本当に明白なことですが、何らかの理由でそれを理解することはできません. *
たとえば、m と n がわずかに異なるラッパー関数である場合、両方の内部関数として bTemplate を実装せずに両方の状態を取得するにはどうすればよいでしょうか?
ありがとう!