如何在一行中的对象上调用匿名javascript函数?

如何在一行中的对象上调用匿名javascript函数?,javascript,node.js,anonymous-function,Javascript,Node.js,Anonymous Function,我正在学习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匿名函数和作用域,并试图理解一些东西,但有点卡住了

我有以下三项职能:

var funcA = function (value) {
    test = value;
};

var funcB = function (value) {
    this.test = value;
};

var funcC = function (func,value) {
    var item = {};
    //single line invocation
}
我正在尝试编写一行javascript(其中显示
//单行调用
),这样下面两个调用的结果将不同,而不是产生相同的效果:

funcC(funcA, "set");
funcC(funcB, "set");
因为funcB引用的是
this.test
,所以它将更改一个本地(实例)值,这样我们就可以使用funcC中的“item”对象。我尝试了一些匿名函数“东西”,比如:

然而,我在导致不同结果的声明方面没有任何运气。(即,当我使用节点(.js)运行代码时,
test
this.test
值都会改变)

对更好地理解这一点有任何帮助都会很好

提前感谢,

ParagonRG

您必须使用来告诉它要处理的实例

funcB.call(item, value);

不能将匿名函数用作对象属性。你想做什么

var item = {"f": func};
item.f(value);
// item.test == value now
对吧??JavaScript实现这一点的方式是:

您还可以对匿名函数表达式使用
call

(function(val){ this.test = val; }).call(item, value);
// yet this equivalent looks much cleaner:
item.test = value;
func.call(item, value);
// with the difference that item has no "f" property here
(function(val){ this.test = val; }).call(item, value);
// yet this equivalent looks much cleaner:
item.test = value;