我正在阅读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函数名称与函数引用的区别是什么?
答案 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