在对象的属性中存储函数

时间:2013-07-23 21:12:34

标签: javascript

假设我有一个JavaScript对象foo,它有一个属性“bar”,其值是一个函数。

var foo = {"bar" : someFunction};

我可以用匿名函数替换“someFunction”。但是,如果我想单独定义函数该怎么办:

function someFunction() { 
  ...
}

我无法编写foo.bar = someFunction(),因为它会存储评估函数的结果。

如何将foo.bar的值设置为函数?一旦设定,我该怎么称呼它?

4 个答案:

答案 0 :(得分:4)

  

如何将foo.bar的值设置为函数?

没有括号:

foo.bar = someFunction;

  

一旦设定,我该怎么称呼它?

像处理任何功能一样对待财产:

foo.bar();

答案 1 :(得分:1)

取出(),您应该可以将其设置为等于函数

   foo.bar = someFunction; //assign
   foo.bar(); // call

http://jsfiddle.net/sN9cs/1/

答案 2 :(得分:1)

您只需将bar分配给某些someFunction 指针,如下所示:

var foo  = {};
function someFunction() {
};
foo.bar = someFunction;


foo.bar();

答案 3 :(得分:0)

第一个例子就是你如何做到的。只是不要调用函数:

foo.bar = someFunction;