JavaScript中函数的定义以及使用
JavaScript中函数的定义以及使用
一、函数的定义
函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块。JavaScript 函数语法,函数就是包裹在花括号中的代码块,前面使用了关键词 function: 当调用该函数时,会执行函数内的代码。可以在某事件发生时直接调用函数(比如当用户点击按钮时),并且可由 JavaScript 在任何位置进行调用
二、函数的3种声明方式
1.普通的函数声明
2.使用变量初始化函数
3.使用function构造函数
不推荐使用第3种方法初始化一个函数,因为系统会进行俩次解析,影响性能。
三、function函数中的几个常用方法
1.arguments.callee方法
具体的使用方法如下
首先我们写一个递归函数如下;
从以上代码我们可以看出,我们在每次调用sum方法的时候当传递的参数>1的时候,代码每次都会调用自己本身直到传递的参数<=1为止,虽然我们可以通过调用自己的函数名称来完成调用,但是当我们多次调用本身函数的时候,如果我们改变函数名称,那么调用的位置也需要改变,为了提高代码的维护性所以我们可以通过调用arguments.callee方法来实现以上操作。
使用arguments.callee的方法代码如下;
在说明其它函数之前先说明下在JavaScript中window关键字与this关键字
1.window关键字
(1)方式一
代码部分:
运行结果:
(2)方式2
代码部分:
运行结果:
从上面的运行结果我们可以看出number是全局变量,而这个变量又是window的属性,window是最大的属性。
2.this关键字
代码部分;
运行结果;
(1)
(2)
从运行结果我们可以看出第一次打印出的结果中this调用的全局变量中的number,第二次调用num变量中的showNumber函数所打印出的结果this调用的是num对象中的number属性得值。
3.call方法和apply方法
代码部分;
运行结果;
从上面运行结果我们可以看出apply方法可以冒充add方法进行俩个数相加操作,在这里apply方法中传递的俩个参数,this表示window的作用域,[]表示数组参数。call也可以实现这一功能只不过传递参数的方式略有不同,第二个参数不是数组而是变量值比如在apply方法中传入的值为[number1,number2]在call方法中传入的就是number1,number2.
上面的代码是apply方法和call方法的一种使用形式,但apply方法和call方法还存在着另一种使用方式并且更加重要。apply方法和call方法还可以改变变量的作用域。
代码部分;
运行结果;
(1)
(2)
(3)
从运行结果我们可以看出在我们没调用call方法和apply方法的时候运行的结果为121200,说明this引用的对象是全局对象中的number,当我们调用call方法和apply方法时运行的结果为121201,说明this引用的对象为num对象中的number属性 ,从以上结果我们可以看出apply方法和call方法不光可以冒充其他函数运行,还可以改变变量的作用域。