我是Javascript的新手,虽然我有.net背景。通常在.NET(以及许多其他语言)中,如果方法需要传递参数,则必须传递它(否则由于签名错误而导致编译器错误)。这在JavaScript中也是如此,但并非所有情况都会出现。
在Javascript中似乎不是这样。
作为一个工作示例,请参阅第61行
http://www.humblesoftware.com/flotr2/#!basic-axis
第61行是tickFormatter: ticksFn,
我知道tickFormatter正在调用一个名为ticksFn
的函数,但第29行显示
function ticksFn(n) {
return '(' + n + ')';
}
'ticksFn'需要传递一个值(n),但是,我们永远不会传递它。
尽管如此,javascript仍然是正确的,我无法了解如何,也无法工作/了解搜索什么以进行更多研究
答案 0 :(得分:1)
你永远不会打电话。您将函数本身作为参数传递(或者更确切地说作为参数的对象的属性值)。
graph = Flotr.draw(container, [ /* ... */], {
xaxis : {
noTicks : 7, // Display 7 ticks.
tickFormatter : ticksFn, // Displays tick values between brackets.
// …
您的第三方库代码负责实际调用该函数,并使用参数执行此操作。
答案 1 :(得分:0)
在javascript中,不需要传递函数的参数,因为如果不传递,则传递undefined值。
这是一个功能:
function ticksFn(n) {
return '(' + n + ')';
}
可以调用:
ticksFn();
没有任何问题,n的值将是未定义的。
或者是没有参数定义的函数:
function ticksFn() {
return '(' + arguments[0] + ')';
}
并致电:
ticksFn(10);
arguments [0]将为10.因此您可以读取任意数量的参数。
这是关于javascript函数的快速教程..现在关于你的代码.. javascript是一种面向函数的语言,因此编写没有括号的函数名实际上是对函数的引用,而不是调用函数本身..