JavaScript:函数名称和函数之间的区别是什么?功能参考?

时间:2010-05-11 18:05:16

标签: javascript

我正在阅读Google Maps API,并声明:

"callback: The function to call once the script has loaded. If using the Auto-loading feature, this must specify a function name, not a function reference.

JavaScript函数名称与函数引用的区别是什么?

http://code.google.com/apis/ajax/documentation/#GoogleLoad

5 个答案:

答案 0 :(得分:1)

函数名称是一个字符串("alert")。函数引用是函数本身(alert)。

答案 1 :(得分:1)

功能:function func() {}

功能参考:func

功能名称:'func'

答案 2 :(得分:1)

在这种情况下,函数的名称是一个字符串,例如'foo':

function foo() {}

对函数的引用是任何设置为函数本身值的变量(不是调用它的结果)。

Javascript中的函数可以是anonymous - 您可以引用一个没有名称的函数。

var bar = function() {}

答案 3 :(得分:0)

好吧,或许那些文档意味着要说的是它所期望的“名称”应该是一个包含函数名称的字符串,而不是“裸”函数名(对函数的引用)或函数实例化/定义表达式。

编辑好的,我知道这笔交易是什么。这真的不是Google Maps的东西,它是Google Javascript加载工具包。 API确实需要一个字符串,这非常有意义,因为您要调用的函数是在您正在加载的代码中,因此不能从调用环境引用它。

google.load("feeds", "1", {"callback" : "someFunctionName"});

写下来没有意义:

google.load("feeds", "1", {"callback" : someFunctionName});

因为像这样使用的“someFunctionName” - 作为对某事物的引用 - 不可能是对正确函数的引用(如果它被定义的话)。

答案 4 :(得分:0)

无。

// f1 :: function name
function f1(a) { return a*a; }  

// f2 :: reference to an anonymous function
var f2 = function(a) { return a*a; }  

// f3 :: a reference to the first function
var f3 = f1; 

// these are equivalent. The second one calls into 
// a different actual function. 
f1(3);  // 9
f2(4);  // 16
f3(5);  // 25