一.概述
1.函数就是封装了一段可以重复执行调用的代码块
2.目的:增加复用性
二.函数的使用
1.使用步骤:声明函数和调用函数
2.函数的声明:
(1)格式:function 函数名(){}
(2)函数名最好见名知意
(3)函数名括号内是参数列表
(4)还可以通过var 变量名 = function(){}来声明函数
-
3.函数的调用:
(1)格式:函数名();
(2)有参数的话就在括号内传入参数
(3)函数也可以在调用函数4.函数的封装:把一个或多个功能通过函数的方式封装起来,对外只提供一个简单的函数接口
5.立即执行函数:
(1)立即执行函数就是匿名函数用括号包起来,并在后面加上()
(2)例如:(function(){alert(“hello”)})()或(function(a,b){alert(“a+b=”+a+b)})(123,456)
(3)立即执行函数一般情况下只能运行一次三.函数的参数
1.声明函数的括号里是形式参数
2.调用函数的括号里是实际参数
3.函数可以有参数(一个或多个),也可以没有
-
4.参数由实参传给形参
5.实参个数 = 形参个数:正常输出
6.实参个数 > 形参个数:会取到与形参个数相等的参数
7.实参个数 < 形参个数:多余的形参定义为undefined 最终结果为NaN
(1)如果return后不跟任何值或变量,只返回undefined
(2)函数不写return,会返回undefined四.函数的返回值
1.函数用来实现功能,最终的结果要返回给函数的调用者
2.函数遇到return 就会把结果返回给调用者
3.return后的语句就不会执行
4.return只能返回一个值 如果用逗号隔开多个值,会以最后一个为准
5.函数没有返回值,会返回undefined
五.arguments的使用
1.当不知道有多少参数传递时,可以用arguments来获取
(1)arguments实际上当前函数的一个内置对象。所有函数都内置了arguments对象,其中存储了传递的所有实参
2.使用:
(1)是一种伪数组:具有数组的length属性,并且按照索引方式来存储
(2)可以用数组遍历六.this
1.解析器调用函数时会向函数内部传递一个隐含的参数-this
2.this指向的是一个对象,我们称这个对象为上下文对象
3.根据函数的调用方式不同,this会指向不同的对象:
(1)以函数形式调用:this永远都是window
(2)以方法形式调用:this就是调用方法的那个对象4.call()和apply()方法:
(1)作用:调用函数,和函数名()一样的效果
(2)使用这两个方法,在括号里可以设置this的指向 函数名.call(obj) this指向obj
- 函数名.apply(a) this指向a