2010-05-11 100 views
4

我读了谷歌地图API,它指出:JavaScript:函数名称和函数引用有什么区别?

"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函数名VS函数引用?

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

+0

你能提供一个链接到文件片段的确切位置吗?它实际上是用于API本身,还是用于Google JavaScript加载器,或者它是什么?哦,我找到了。 – Pointy 2010-05-11 18:10:23

+0

@Pointy,链接上面 – Teddyk 2010-05-11 18:11:30

回答

1

功能:function func() {}

功能参考:func

函数名称:'func'

0

哦,也许文档的该位的意思是说那是什么“名称”,预计应该是包含函数的名称的字符串,而不是一个“裸”函数名(其中对函数的引用是)或函数实例化/定义表达式。

编辑好的,我明白这笔交易是什么。这实际上不是谷歌地图的东西,它是Google Javascript加载器工具包。 API确实需要一个字符串,这是非常有意义的,因为您要调用的函数在您要加载的代码内部为,因此不能从对调用环境进行引用。

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

这也就没有什么意义的写:

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

因为使用这样的—作为参考的东西—不可能是正确的函数的引用(“someFunctionName”如果它被定义完全)。

+0

所以它将* callback = function_name *或* callback = function_name()*? – Teddyk 2010-05-11 18:08:43

+0

都不是:'{callback:“function_name”}' – Pointy 2010-05-11 18:15:57

1

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

+0

所以它会* callback =“function_name”*? – Teddyk 2010-05-11 18:10:12

+0

如果您使用自动加载。 – 2010-05-11 18:10:53

+0

是的,我正在使用自动加载。那么* callback =“function_name”*正确吗? – Teddyk 2010-05-11 18:12:06

1

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

function foo() {} 

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

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

var bar = function() {} 
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 
+0

如果你阅读上下文中的文档片段,这个问题是有意义的。 – Pointy 2010-05-11 18:17:03

+0

我明白了。 。 。 – Cheeso 2010-05-11 18:25:01

相关问题