我正在学习 javascript 匿名函数和范围,并试图理解一些东西,但已经变得有点卡住了。
我有以下三个功能:
var funcA = function (value) {
test = value;
};
var funcB = function (value) {
this.test = value;
};
var funcC = function (func,value) {
var item = {};
//single line invocation
}
我正在尝试编写一行 javascript(它说//single line invocation
),以便以下两个调用的结果会有所不同,而不是具有相同的效果:
funcC(funcA, "set");
funcC(funcB, "set");
由于 funcB 是在引用this.test
,所以它会更改本地(实例)值是有道理的,因此我们可以使用 funcC 中的“item”对象。我尝试做一些匿名函数“东西”,比如:
item.(function(func,value){func(value)})(func, value);
但是,就导致不同结果的陈述而言,我没有任何运气。(即,当我使用 node(.js) 运行我的代码时,test
和this.test
值都发生了变化)。
任何有助于更好地理解这一点的帮助都会很棒。
提前致谢,
典范RG