Javascript函数调用

函数调用

函数定义后,并不会自动执行,需要通过调用来实现。在JS中调用通常有四种方式:

函数调用模式;

方法调用模式;

构造器调用模式;

apply、call调用模式;

其中函数调用模式的语法是:函数名([实参列表]);

若实参缺省时,会传“undefined”值给对应的形参;如果实参个数小于形参个数,实参首先按顺序一一对应传给形参,没有实参对应的形参,就会对应传“undefined”值;如果实参个数多余形参,那么多余的实参无效。

调用javascript函数 javascript函数调用函数_函数

再比如下面的例子,将匿名函数定义赋值给变量add,如此一来就可以通过add来调用函数了。注意,函数的调用语句必须放在函数的定义语句之后,否则会出错。

调用javascript函数 javascript函数调用函数_ecmascript_02

下面再看一个事件注册函数的调用,将匿名函数绑定到按钮的单击事件上面,这样,每次单击按钮的时候都会调用一次匿名函数。

调用javascript函数 javascript函数调用函数_javascript_03

回到上面第一个例子,在调用函数时可以指定任意个实参(最多255个),那么对应到了形参,多余的参数我们是不是就浪费了,要是也想要使用,怎么办?

这里就引入了一个arguments对象的概念,其实,调用函数时传递的实参都会存在于arguments对象中。arguments对象是一个类似于数组Array的东西,用“arguments[下标]”的方式来访问,存放的实际参数个数也可以用“arguments.length”来获取。

有了arguments对象,当函数的参数个数无法确定时,定义函数时可以不用指定形参,但在调用的时候需要根据不同情况传递不同个数的实参,然后在函数中通过下标来访问arguments对象元素。

调用javascript函数 javascript函数调用函数_函数_04

需要注意的是,arguments的作用域和局部变量一样,仅限于函数内部。另外,如果函数有形参,那么arguments中的元素首先会跟形参一一对应,arguments中的元素值修改会影响形参。

调用javascript函数 javascript函数调用函数_ecmascript_05

调用javascript函数 javascript函数调用函数_开发语言_06