私はJavaScriptの匿名関数とスコープについて学んでおり、何かを理解しようとしていますが、少し行き詰まっています。
次の3つの機能があります。
var funcA = function (value) {
test = value;
};
var funcB = function (value) {
this.test = value;
};
var funcC = function (func,value) {
var item = {};
//single line invocation
}
//single line invocation
同じ効果を持つのではなく、次の2つの呼び出しの結果が異なるように、javascriptの1行(どこにあるのか)を書き込もうとしています:
funcC(funcA, "set");
funcC(funcB, "set");
funcB はthis.test
代わりに参照しているため、funcC で「アイテム」オブジェクトを利用できるように、ローカル (インスタンス) 値を変更することは理にかなっています。次のような匿名関数の「もの」を試してみました。
item.(function(func,value){func(value)})(func, value);
しかし、異なる結果をもたらすステートメントに関して、私は運がありませんでした。(つまり、node(.js) を使用してコードを実行すると、test
とのthis.test
値が両方とも変更されます)。
これをよりよく理解するための助けは素晴らしいでしょう。
前もって感謝します、
パラゴンRG